背景
技術やサービスのリリース情報を追う際にTwitterをよく利用しています。
また、Webサービスなどに障害があった際も公式アナウンスよりも早くTLがざわめき出す為、
早い段階で心構えができたり、確認作業に入る事ができます。
Twitterで気になる情報を弊社で利用しているMattermostに手作業でコピペを行っていましたが、
たまたま見つけた+手作業という非効率さが気になり自動化できないかと考えました。(実際は資格取得に向けた勉強からの現実逃避)
ふんわりした構成(未採用)
AWSを使った業務を行っている為、以下の構成を考えました。
Amazon EventBridge(Cron) -> Lambda(Twitter API実行) -> webhooks -> Mattermost
定期的にLambdaで検索かけるのもリアルタイム性がなく、コードを書かなくては行けないのでもっと手軽な方法がないかを調べることにしました。
結果
IFTTTなるサービスを見つけました。
Webサービスの連携をしてくれるらしく、特定のキーワードに該当したらwebhooksに転送してくれる機能がありました。
もうこのサービスだけでやりたいことができます。
IFTTT -> webhooks -> Mattermost
↓↑
Twitter
設定
- Twitterアカウント作成
- Twitterの検索を自身のアカウント経由で行う為、Twitterのアカウントが必要になります。
- Mattermostの内向きwebhooksを作成
- 投稿する予定のチャンネル作成
- 公開チャンネル or 非公開チャンネル右にある+を押す
- 名前(任意)を入力し、チャンネルを作成を選択
- 統合機能 -> 内向きウェブフック -> 内向きウェブフックを追加する
- 追加
- タイトル(任意)
- チャンネル(上記で作成したものを選択)
- 保存を選択
- 発行されたURLを控える
- 投稿する予定のチャンネル作成
- IFTTTのアカウント作成
- IFTTTの設定
- TOPページのCreateを選択
- IF This Then ThatのThisを選択
- Twitterを検索し選択
- if new tweet from searchを選択
- Search forの項目にTwitterの検索ルールにならって検索ワードを入力
- 例1:
"from:アカウントID リリース"
- 例2:
"**** 障害"
- 例1:
- IF This Then ThatのThatを選択
- webhooksを検索し、選択
- Make a web requestを選択
- Complete action fields
- URL
- Mattermostの内向きWebhooksのURL
- Method
- POST
- Content Type
- application/json
- Body (optional)
-
以下の形式で入力します。
{"text": "投稿したい内容"}
-
Add ingredientを押すと変数がでてくるので、お好みで選んでください。
-
例:
{"text": "{{Text}}"}
-
-
- URL
- Create action -> Finishを選択し完了です。
- 検索が実行される間隔はまだつかめてませんが、テストのタイミングだと2分は連携に時間がかかりました。
感想
思い立ってから完成するまで約1時間でした。
Twitterのツイートを他のWebサービスに投稿というケースが沢山あり大変参考になりました。
Mattermostの例がほぼない状況でしたが、公式サイトを確認し対応できています。
https://docs.Mattermost.com/developer/webhooks-incoming.html
どなたかの参考になれば幸いです。