TwilioとSlackを連携させてみた
こんにちは、昴です。
本ブログはゲーソル・ギョーソル Advent Calendar 2024の12日目のブログとなります!
他のブログも合わせてご覧ください。
今回はTwilioとSlackを連携させてみたいと思います。
はじめに
Twilioは電話やSMS、チャットなどのコミュニケーション機能を組み込むためのクラウドベースのAPIプラットフォームです。TwilioのAPIを利用することで通信ソリューションを自由にカスタマイズして構築することができます。
今回はTwilioの機能の中でもTwilio Studioに注目していきたいと思います。
TwilioとSlackを連携させて、受信したSMSの内容をSlackに通知していきます。
設定
それではTwilio Studioでフローを作成していきます。
まずはTwilioのコンソール画面でStudioに移動し、「create a flow」を選択していきます。
「create a flow」を選択するとフローの名前を入力する画面が表示されますので名前を入力していきます。ここでは「Twilio_to_Slack」と名前を入力しました。
次に、フローを作成する上でのテンプレートを選択します。いくつかのテンプレートがあり、用途に合わせて選択していきます。今回は「Start from scratch」を選択していきます。これはテンプレートではなく始めから作成するものとなっています。
フローの作成画面に移行すると下記のような画面になります。今回はSMSなので、TriggerのIncoming Messageから下に続けていきます。
今回使用するWidgetはMake HTTP Request Widgetになります。ドラッグアンドドロップで移動しTriggerと接続します。Widgetの名前を入力し、Request methodはPOSTを選択していきます。
ここでRequest URLが必要となるため、Slack Webhook URLを作成していきます。
SlackのIncoming Webhookのページへ移動し、TwilioのSMSの通知を送りたいチャンネルを選択して「Add Incoming WebHooks Integration」を選択します。(Incoming Webhookはこちらのページを参照)
作成ができると下記のようにURLを得ることができます。このURLは先ほどのWidgetで使用するためコピーしてどこかに保存しておきます。
再びTwilio画面へ移動し、Widgetの設定にてURLを入力します。
URLを入力すると2つ項目が表示されるので、Content Typeで「Application/JSON」を選択、Request Bodyには {"text": "{{trigger.message.Body}}"}
を入力します。
Widget内の設定にて入力が完了したらSaveをします。
これでフローの設定は完了なので画面上部の「Publish」で公開します。
次に電話番号に作成したフローを紐づけていきます。
コンソール画面のPhone Numbers > Manage > Active numbersへ移動し、接続したい電話番号を選択します。
電話番号を選択すると設定画面が開くため、下へスクロールしMessaging Configuration欄のA call comes inで「Studio Flow」を選択し、先ほど作成したフロー「Twilio_to_Slack」を選択していきます。
最後に「Save configuration」を選択して設定を保存します。これで設定は完了となります。
確認
それでは実際の動作を確認します。
下記のようにTwilioの電話番号に対してSMSを送信してみます。
するとSlack上でincoming-webhookから送信したSMS通りの通知が届きました。
まとめ
今回はTwilioとSlackを連携して、Twilioの番号に送られてきたSMSをSlackに通知してみました。
本ブログが少しでも参考になれば幸いです。