※更新
Hubot Integrationが更新されて必要な環境変数等が変わっているので注意。
http://qiita.com/KeitaMoromizato/items/0ee11d795d18a49538d8
twitterのつぶやきをSlackにポストする方法とそのメリット
タイトルの通り、Slackにtwitterのつぶやきを投稿する方法を説明しています。これ、自社サービスをお持ちの企業でやると意外と効果的だったり。最後の方にメリットを書いていますのでどうぞ。
前提
- herokuにユーザ登録済み
- herokuコマンドが使える
- herokuにクレジットカード情報を登録している
クレジットカードを登録していないとmonglabのアドオンが使えないので登録必須です。課金は発生しないはずですが、万が一発生した場合も自己責任でお願いします...
twitter token取得
Twitter Applicatioin Managementから[Create New App]で各種情報を入力し、[create your twitter application]。
[Keys and Access Tokens]からAPI KeyとAPI Secretを取得します。
あとは下のほうにある[Create my access token]から...
Access TokenとAccess Token Secretを取得します。
Slack Token取得
Slackの[add a service integration]から[Incoming Webhooks]を選択、チャネルを選択して[Add Incoming WebHooks Integration]。
[WebHook URL]の最後の部分がtokenです。
Group名と投稿先Channel名も確認しましょう。
herokuにアプリをデプロイ
ここからレポジトリをcloneして下さい。そのまま使えるはずです。
https://github.com/KeitaMoromizato/twitter_to_slack
cloneが終わったらプロジェクトのルートディレクトリに移動し、以下のコマンドを実行。
$ heroku create twitter-slack-test
$ git push heroku master
$ heroku ps:scale web=1
$ heroku addons:add mongolab:sandbox
完了したらmongolabの設定を確認するためheroku config
コマンドを実行。
$ heroku config
=== twitter-slack-test Config Vars
MONGOLAB_URI: mongodb://heroku_app32417310:xxxxxxx.mongolab.com:63330/heroku_app111111
mongodb://(8)HOST名:(9)PORT名/(10)DATABASE名
というフォーマットです。
必要な環境変数を登録。ちょっと多いですが頑張りましょう!
$ heroku config:set TWITTER_CONSUMER_KEY=**********(1)
$ heroku config:set TWITTER_CONSUMER_SECRET=**********(2)
$ heroku config:set TWITTER_ACCESS_TOKEN_KEY=**********(3)
$ heroku config:set TWITTER_ACCESS_TOKEN_SECRET=**********(4)
$ heroku config:set SLACK_KEY=**********(5)
$ heroku config:set SLACK_GROUP=**********(6)
$ heroku config:set SLACK_CHANNEL=*********(7)
$ heroku config:set MONGO_HOST=**********(8)
$ heroku config:set MONGO_PORT=**********(9)
$ heroku config:set MONGO_DATABASE=**********(10)
スケジューラの設定
今回herokuにデプロイしたアプリケーションはコードを読んでもらうとわかりますが、スケジューラが含まれていません。動かすには定期的に外からAPIを叩く必要があります。
そこで使用するのがGoogleAppsScript(通称GAS)です。これはGoogle Spreadsheetsから使うことができます。
まずはGoogleSpreadSheetを作成し、[ツール]の[スクリプトエディタ]を開き、以下のコードを書きます(URLはherokuから取得できます)。ここまで終わったら実行ボタン(▶)を押して動作確認。うまくいっていればSlackにポストされるはず。
wordパラメータに','区切りで複数検索ワードを指定できます。
時計のアイコンをクリックし、statusUpdate()
が1分ごとに呼ばれるように設定。これで保存したら設定は完了です!
ツイートをSlackに投稿する意義
これを使えば自社サービスに関するツイートを拾い上げ(いわゆるエゴサ)、Slackに流すことができます。そのメリットとしては、
- サービスの不具合の早期発見
- ユーザの一次情報を見ることでリアルな空気感が伝わる
- サービスがどれだけ盛り上がっているかなんとなく分かる
などなど。
また、何よりもSlackはチャットサービスなのでtwitterの投稿を見ながらシームレスに会話をすることができます。「このツイートについてどう思う?」とか「ここは確かに気になってたんだよねー」とか、ユーザの声を取り入れたコミュニケーションが活発になるはず。
また、今回スケジューラにGASを使用したのは簡単で無料というのもありますが、あのレベルなら非エンジニアの方でも編集ができる、というのが大きいです。ユーザの声を聞くのにエンジニアも非エンジニアも区別はないので、誰でも欲しい検索ワードが増えたら追加できるというのは良いですね。
最後に
このシステム、ツイートの量が多くなると追い切れなくなるので自社サービスがあまり流行っていない時にしか使えませんねw
早くこのシステムから脱却するときが来るよう頑張りましょう!