[Twilio+Slack] Slack コマンドで音声読み上げ通話を自動発信する: SQS+Lambda での非同期処理構成 [3/3]

[Twilio+Slack] Slack コマンドで音声読み上げ通話を自動発信する: SQS+Lambda での非同期処理構成 [3/3]

Slack 上で /voice [電話番号] [読み上げ内容] のようにコマンドを入力すると、Twilio の音声 API を使って自動で通話を発信し、指定した内容を読み上げる仕組みを構築します。本シリーズでは、Twilio Programmable Voice・AWS Lambda・Amazon SQS・API Gateway を活用し、Slack からの指示を安全かつ非同期に処理する構成を解説します。第 3 回では、Slack アプリの作成とスラッシュコマンドの設定、署名検証に必要な Signing Secret の取得、そして実際の動作確認を行います。

対象読者

  • Slack スラッシュコマンドから電話発信を行いたい方
  • Twilio の音声読み上げ通話機能(TwiML Say)を試したい方
  • AWS Lambda + SQS + API Gateway の連携例を学びたい方
  • Slack の 3 秒タイムアウト制限を回避したい方
  • Twilio 利用時の課金リスク回避設計にも関心がある方

参考記事


検証環境

バージョン

node: 22.13.1  
npm: 10.9.2  
node_modules/twilio: 5.5.1  
node_modules/aws-sdk: 2.1692.0

概要

本記事では、Slack のスラッシュコマンド /voice を使って、Twilio 経由で自動音声通話を発信する仕組みの仕上げとして、Slack アプリの作成とコマンド設定、署名検証用シークレットの取得、そして実際の動作確認を行います。

構成図における Slack 側の設定(赤枠部分)を中心に解説します。

15


Slack アプリの設定

Signing Secret の取得

署名検証に使う Signing Secret は、Slack アプリ作成後の Basic Information ページから取得できます。

  1. Slack API にアクセス
  2. Create New AppFrom scratch
    12
  3. 名前とワークスペースを指定してアプリ作成
  4. 左メニュー Basic InformationApp Credentials から Signing Secret をコピー
    13

スラッシュコマンドの作成

Slack アプリ左メニュー Slash CommandsCreate New Command を選択し、以下のように設定:
14

項目
Command voice
Request URL API Gateway のエンドポイント
Short Description 認証コードなどを音声で読み上げます
Usage Hint +81XXXXXXXXXX 認証コードは1234です

アプリのインストール

左メニュー Install AppInstall to Workspace をクリックし、権限を許可してインストールします。


動作確認

Slack 上で次のようにコマンドを入力します:

/voice +819012345678 認証コードは1234です

Lambda 関数が署名を検証し、SQS にメッセージを送信。後段の Lambda によって Twilio API が呼び出され、音声読み上げ通話が実行されます。


トラブルシューティング

Lambda のログ確認

CloudWatch Logs のロググループから、Slack リクエスト処理関数や通話発信関数のログを確認してください。console.log() を仕込むと詳細な状態がわかります。


SQS の状態確認

SQS コンソール → 対象キュー → 「モニタリング」タブで以下を確認できます:

メトリクス名 説明
ApproximateNumberOfMessagesVisible 処理待ちメッセージ数
ApproximateAgeOfOldestMessage 最古のメッセージの滞留時間

まとめ

第 3 回では、Slack 側の設定と動作確認を行い、Slack コマンド /voice → Twilio 音声通話までの全体構成が完成しました。

  • Slack アプリの作成と署名検証の導入
  • スラッシュコマンド /voice による発信リクエストの実行
  • SAFE_MODE やホワイトリストで課金リスクを回避

次のステップとしては、以下の応用が考えられます:

  • 音声メッセージのテンプレート化や多言語対応
  • 発信結果を Slack に通知する機能の追加
  • 音声合成 (Say) の代わりに録音済み音声 (Play) を使った高度な IVR

Slack + Twilio + AWS Lambda の構成は拡張性が高く、さまざまな業務自動化に応用できます。ぜひご活用ください。


Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.