この記事は株式会社パーソンリンクアドベントカレンダー22日目の記事です。
弊社では社内活動の一環として、新しい技術や知見を得るために技術研究を行っております。今回は私の携わったチームで行った「IFTTTを使用したLinebot→Slackの連携方法」について書きます。
はじめに
下記の要件で構成します。
- Linebotでメッセージの受信を検知した後、Slackに受信の通知を行う。
- フローは、LINE → IFTTT → Slackとする。
- Slackへのメッセージ内容はIFTTTで設定し、定型文とする。(Lineからの値は取得しない)
構築手順
IFTTTとSlackの設定
1.IFTTTにログインし、右上メニューの「Create」から連携の仕組み(Applets)を作成する。
2.「If This」にトリガーとなる「Webhooks」を検索して選択する。設定の中の「Event Name」に任意の名前をつけ、Create triggerをクリックする。
3.SlackとIFTTTのアカウントを連携する。連携手順は下記の公式サイトの通り行う。
Slack 対応 IFTTT | Slack
4.Appletsの「Then That」にSlackを検索し、選択する。Slackの設定内容は以下の通り行う。
「Which channnel?」:通知を送信したいSlackのチャンネルを指定
「Message」:送信メッセージの内容を記述
「Title」:送信メッセージのタイトル名(オプション)
*送信するチャンネルは、自分のアカウントの権限で許可されたチャンネルのみ選択が可能。
*その他オプションは必要に応じて設定する。
5.上記の設定を完了後、「Create action」をクリックし、Appletsが作成される。
Lineの設定
1.IFTTTで作成した「My Applets」を開き、Webhooksの「Documentation」を開く。下記のリンクに表示される。
Webhooks works better with IFTTT
2.Webhooksの「Documentation」を開き、{event}にIFTTTのWebhookで設定した「Event Name」を入力し(下記では、linebot)、WebhookのURLをコピーする。下記画像参照。
3.LineのOfficial Account Managerにアクセスし、設定>応答設定を開く。
応答モード:Bot、Webhook:オンに設定する。下記の画像を参照。
*応答モードは、Botに設定する必要があり、チャットの場合Webhookが利用できない。
4.設定>Messaging APIを開く。Webhook URLにIFTTTのWebhooksで取得したURLを貼り付け、保存する。
5.以上でLine側の設定は完了。
動作確認
Linebotに対して、Lineからメッセージを送信すると、Slackに通知があったことを知らせるメッセージが送信されます。
1.Linebotにメッセージを送信する。
2.Slackに通知のメッセージが届く。
設定で確認するところ
- Slackで受信するメッセージの内容は、IFTTTのMy Applets>Settingsから変更ができる。
- Slackで通知が受信できない場合は、下記の点を確認する。
- IFTTTのThisで設定したWebhookのEvent NameとWebhooks URLのevent部分が一致している。
- SlackのAppの中にIFTTTか表示されている(正しくインストールされている)。
「IFTTTを使用したLinebot→Slackの連携方法」は以上となります。
参考
構築を行うに当たり、下記の記事を参考にさせて頂きました。
LINEにメッセージが届いたら指定のメアドに通知する(その2) – チラシの裏
LINEをトリガーに家のGoogleHomeを喋らせる - Qiita