通知特化型Twitterアプリ「29hours」をつくってHerokuで動かしているお話 - 準二級.jp
昨日というか今朝Heroku力がついたおかげで[2013-04-14-1]
、案外簡単に
できました。
settings.ymlはだいたいこんな感じ。
twitter:
my_screen_name:
masutaka
consumer_key:
XXXXXXXX
consumer_secret:
XXXXXXXX
access_key:
XXXXXXXX
access_secret:
XXXXXXXX
matchers:
keywords:
- masutaka
- マスタカ
- 増田
notifiers:
imkayac:
username:
XXXXXXXX
linker:
http
https://dev.twitter.com/apps
からアプリを作って、consumer_keyや
consumer_secretなどを埋める必要があります。やったことない人は気づく
まで時間がかかるかもしれません。
普段使っているTweetAtokは個別ツイートのURLスキーマは対応してなさそ
うでした。残念。
以下、記事の見出しと対応してます。
動かす
ここまで来ると、ローカルで普通に動きます。タイムラインがだらだら流
れていくことと、普段から使っているim.kayac.com
から通知が来ることを
確認しました。
あ、今朝と同じようにgemはvender/gems以下にインストールして動作確認
しました。[2013-04-14-1]
Heroku に乗せる
ここはちょっとハマりました。Dropboxにsettings.ymlを置きリンクを有効
にしたんですが、29hoursは起動してないようでした。
ログを見るため、Papertrail
を入れようと
% heroku addons:add papertrail:choklad
を実行したら下記のエラーメッセージ。Freeプランでもクレジットカード
情報が必要みたいです。
! Please verify your account to install this add-on
! For more information, see http://devcenter.heroku.com/categories/billing
! Verify now at https://heroku.com/verify
登録してもHerokuが混雑しているのか、エラー画面に飛ばされました(再度
Appsのページに行ったら、Papertrailがインストールされてたので良しと
した)。
ログを見たら、Rubyのパースエラーが発生してました。ためしに
% heroku config:unset SETTINGS_FILE_PATH
したあと、settings.ymlをcommitしてHerokuにpushしたところ、無事動きました!
(私以外は見られないリポジトリだから問題ないと思う)
まとめ
これで通知のためだけに動かしていたTiarraのTIG(TwieetIrcGateway)は
要らなくなるのかも。そもそも最近IRC使ってないなあ。。
@june29 さん、ありがとうございました!
おまけ
Herokuではworkerを有効にすると、Procfileを参照するのですね。
このように書いてありました。なるほど。
worker: bundle exec ruby 29hours.rb –production
これはちょっとハマったw
(誤) $ heroku restart –app アプリ名
(正) $ heroku restart –-app アプリ名
追記(2013-04-15):
上記restartの件は、修正して下さいました。