56
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SlackAdvent Calendar 2014

Day 15

twitterのつぶやきをSlackにポストする方法とそのメリット

Last updated at Posted at 2014-12-14

※更新
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]。

2.png

[Keys and Access Tokens]からAPI KeyとAPI Secretを取得します。

4.png

あとは下のほうにある[Create my access token]から...

8.png

Access TokenとAccess Token Secretを取得します。

9.png

Slack Token取得

Slackの[add a service integration]から[Incoming Webhooks]を選択、チャネルを選択して[Add Incoming WebHooks Integration]。

5.png

[WebHook URL]の最後の部分がtokenです。

10.png

Group名と投稿先Channel名も確認しましょう。

13.png

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パラメータに','区切りで複数検索ワードを指定できます。
14.png

時計のアイコンをクリックし、statusUpdate()が1分ごとに呼ばれるように設定。これで保存したら設定は完了です!

15.png

ツイートをSlackに投稿する意義

これを使えば自社サービスに関するツイートを拾い上げ(いわゆるエゴサ)、Slackに流すことができます。そのメリットとしては、

  • サービスの不具合の早期発見
  • ユーザの一次情報を見ることでリアルな空気感が伝わる
  • サービスがどれだけ盛り上がっているかなんとなく分かる

などなど。
また、何よりもSlackはチャットサービスなのでtwitterの投稿を見ながらシームレスに会話をすることができます。「このツイートについてどう思う?」とか「ここは確かに気になってたんだよねー」とか、ユーザの声を取り入れたコミュニケーションが活発になるはず。

また、今回スケジューラにGASを使用したのは簡単で無料というのもありますが、あのレベルなら非エンジニアの方でも編集ができる、というのが大きいです。ユーザの声を聞くのにエンジニアも非エンジニアも区別はないので、誰でも欲しい検索ワードが増えたら追加できるというのは良いですね。

最後に

このシステム、ツイートの量が多くなると追い切れなくなるので自社サービスがあまり流行っていない時にしか使えませんねw
早くこのシステムから脱却するときが来るよう頑張りましょう!

56
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?