2023年5月1日を持ちまして、株式会社KDDIウェブコミュニケーションズのTwilioリセール事業が終了したため、本記事に記載されている内容は正確ではないことを予めご了承ください。
はじめに
ハッカソンでよく使われるNode-RED。
Twilio経由で電話をかけたいというリクエストが結構あるので、その方法を記事にしておきます。
Twilio側は、Studioを使うので、基本的にコードを書く必要はありません。
準備
- Twilioアカウント(トライアルでも可能ですが、発信先は認証済み番号に限られます)。
- Node-RED環境(IBMクラウド、もしくはローカルインストールのどちらでも可能です)。
Twilio Studioで電話をかけるフローを作成する
上記のように、REST APIトリガーを起点に、Make outgoing callウィジェットと、Say/Playウィジェットを組み合わせて、架電して応答メッセージを流すフローを作成します。
Make outgoing callウィジェットのパラメータは変更する必要はありません。
Say/PlayウィジェットのTEXT TO SAYフィールドには、{{flow.data.message}}と入れておきます。こうすることで、Node-RED側で指定したメッセージを発話させることができます。
作成したフローのTriggerウィジェットに書かれているREST API URLをコピーして、メモ帳にコピーしておきます。
Twilioの認証情報をコピーする
Twilioコンソールのダッシュボードを開き、Account SIDとAuthTokenをメモ帳にコピーしておきます。
Node-REDで、ノードを組み立てる
たとえば、以下のようなフローを作成します。

functionノードのパラメータ(上記では paramノード)
msg.payload = {'From': '+8150XXXXXXXX', 'To': '+8190XXXXXXXX', 'Parameters': JSON.stringify({'message': 'ここに流したいメッセージを記入'})};
msg.headers = {'content-type':'application/x-www-form-urlencoded'};
return msg;
Fromパラメータには、Twilioで購入した050番号を記載します。
Toパラメータには、発信先の電話番号を記載します。
messageパラメータには、相手が応答した際に流すメッセージを指定します。
http requestパラメータ
- メソッドを「POST」に変更します。
- URLには、先程メモ帳に控えておいたStudioフローのREST API URLを指定します。
- ベーシック認証のチェックを入れます。
- ユーザ名には、TwilioのAccount SIDを入れます。
- パスワードには、Account SIDに対応したAuthTokenを入力します。
テスト
Node-REDをデプロイして、timestampノードの左側をクリックしてフローを実行します。
しばらくすると電話がかかって、指定したメッセージが再生されます。