画像

通知特化型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の件は、修正して下さいました。