コードを書かずにTwilioを使ってSMSのメッセージをSlackに投稿してみた

2020.10.26

MFAでSMSを使用したいが、受信できる端末を持っていないのでどうしようか考えたところ、 TwilioのProgrammable Messagingでできるのでは?と思い立ったので試してみました。

構成

  • Twilio Number
    • SMSメッセージの受信先電話番号
    • 電話番号は自身で取得する必要があります
  • Twilio Studio Flow
    • SMSの受信をトリガーにし、Slackへ投稿するためのワークフローを作成します。

必要なもの

  • Twilioアカウント(トライアルアカウントでも大丈夫)
  • Twilio電話番号
  • Slackワークスペース

Studio Flowの作成

Twilioのコンソールにログインし、Studioダッシュボードに移動してから、+アイコンをタップして新しいフローを作成します.

ウィジェットライブラリから、Make HTTP Requestというウェジェットを選択し、カンバスにドラッグします

このウェイジェットは名前通り、HTTP Requestを送るためのものです。

REQUEST URLにはSlackのIncoming Webhookアプリを設定して作成されたIncoming Webhook URLを入力します。

CONTENT TYPEにはApplication/JSONを選択します。

REQUEST BODYには、{"text": "{{trigger.message.Body}}"} を入力します。

最後にSaveボタンを押して保存します。

Triggerの中にあるIncomming Messageのドットをウィジェットに接続します。

最後にPublishボタンを押してSlackにHTTP Requestを送信するStudio Flowの完成です。

Twilio電話番号に作成したFlowを接続

電話番号で受信した内容を作成したFlowに転送する設定を行います。

電話番号の設定ページに移動し、SMS受信する番号をクリックします。

Messagingの設定で、A MESSAGE COMES INStudio Flowにし、 先ほど作成したFlowを選択して保存します。

これで接続完了です。

テスト

Twilioの電話番号にSMSメッセージを送信し、Slackで受信するテストを行ってみます。

メッセージの送信はなんでもいいですが、MFAを使用したWebサイトのログインなんかが簡単で良いかと思います。

正しく設定されていると、以下のようにSlackで受信できます。

(SendGridのログイン時のセキュリティーコードを送信した例)

最後に

SMSのメッセージをSlackに投稿するソリューションを試してみました。 TwilioはProgrammableと謳っているだけあって他のツールと柔軟に連携が可能です。

今回はコードを書かずにStudio Flowだけで実装しましたが、もちろんLambdaやTwilio Functionなどを使ってコードを実行し、 同じようなことも可能です。 メッセージをフィルタリングしたいといった時にはこの方法が良いかと思います。