LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (6) Twilioからの電話受付と登録処理
2017/08/17
目次
作るところ
電話がかかってきてTwilioで受け付けてStepFunctionsを起動するところを作ります。
これが最後です。
プログラムの解説
使うコードはGithub-yamamugi_handson_from_twilioにあります。
Lambda関数
- Twilioからリクエストされる[‘param’][‘Digits’]でどのボタンがプッシュされたかを判定します。
- 1が押されていない場合は再生音声に「申込を中止」を返します。
- 1が押された場合は電話番号をStepFunctionsに渡して再生音声に「受付完了」を返します。
API Gateway 統合リクエスト
- TwilioからのリクエストをJSON形式に変換します。
API Gateway 統合レスポンス
- Lambdaの実行結果をXMLに変換します。
Twiml
- 電話をかけてまず最初に流れる音声です。
- Gatherでキー選択として、アクションをAPI GatewayのURLを指定しています。
Lambda関数の作成
AWSマネジメントコンソールでLambdaを開いて、[関数の作成]をクリックします。
何も選択せず、[一から作成]をクリックします。
何も選択せず、[次へ]をクリックします。
名前 : from_twilio
説明 : ヤマムギハンズオン Twilioで押された番号に対して処理
ランタイム : Python 3.6
コードエントリタイプは「コードをインラインで編集」を選択して、
こちらのコードを貼り付けます。
環境変数
* STATE_MACHINE_ARN : StepFunctionsのステートマシーンのARN
* LOG_LEVEL : DEBUG(ログを減らしたい場合は ERRORかINFOを設定します)
[既存のロールを選択]でLINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (5) LINEからの投稿へ返信と登録処理 で作成したロール lambda_step_functions を選択します。
必要ないとは思いますが、念のためタイムアウトを5分にしておきます。
[次へ]をクリックします。
[関数の作成]をクリックします。
API Gatewayの作成
LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (5) LINEからの投稿へ返信と登録処理 で作成したAPI Gatewayを選択します。
[アクション] – [リソースの作成]をクリックします。
リソース名を from_twilio にして[リソースの作成]をクリックします。
作成したリソースを選択して[メソッドの作成]をクリックします。
GET を選択して「✓」をします。
統合タイプ : Lambda関数
Lambdaリージョン : ap-northeast-1
Lambda関数 : from_twilio
[OK]をクリックします。
[統合リクエスト]をクリックします。
[本文マッピングテンプレート]を展開して、[Content-Type]に application/json を入力して「✓」をクリックします。
[はい、この統合を保護します]をクリックします。
上記を右ペインに貼り付けます。
(Githubのrawからコピーすると項目のダブルクォーテーションが除去されてこの後エラーになるのでご注意ください。)
[保存]をクリックした後、左上の[メソッドの実行]リンクからメソッドの設定画面に戻ります。
次に[統合レスポンス]を設定します。
[本文マッピングテンプレート]を展開して、Content-Typeにすでにある application/json を「-」をクリックして削除します。
[削除]をクリックします。
[マッピングテンプレートの追加]から、application/xml を入力して、右ペインにこのXMLコードを貼り付けてください。
[保存]をクリックして、左上の[メソッドの実行]リンクからメソッドの設定画面に戻ります。
次に[メソッドレスポンス]を設定します。
200のレスポンスを展開して、右下のコンテンツタイプから application/json を「x」で削除します。
[レスポンスモデルの追加]から、 application/xml , Empty を追加します。
左上の[メソッドの実行]リンクからメソッドの設定画面に戻ります。
[アクション] – [APIのデプロイ]を選択します。
LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (5) LINEからの投稿へ返信と登録処理で作成したステージを選択します。
[ステージ]を選択してデプロイされたステージを展開します。
from_twilio – [GET]を選択して右ペインのURLを控えておきます。
Twilioの設定
Twilioコンソールにログインして #(電話番号)メニューで取得している電話番号をクリックします。
A CALL COMES INで[Webhook]を[Twiml]に変更します。
右の[+]をクリックします。
- FRIENDLY NAME : from_twilio
Twimlのコードをコピーして貼り付けます、
action = のURLはAPI GatewayのURLに変更します。
[Create]をクリックします。
[保存]をクリックします。
※一度作ったTwiml Binは右上のデバッグアイコンからRuntimeメニューが現れるのでそこから、Twiml Binsで修正出来ます。
電話をかけて試してみます
それではTwilioの電話番号にかけてみます。
トライアル環境では
「Twilioをご利用いただきありがとうござます。アップグレードいただきますとこのメッセージは削除されます。どれかキーをプッシュしてください。」
とメッセージが流れますので、なんでもいいのでキーをプッシュします。
その後設定した
「お電話ありがとうございます。キャンペーンにお申し込まれる場合は 1 とシャープを。お申し込まれない場合はそのままお電話をお切りください。」が流れますので、[1]と[#]をプッシュします。
Slackにメッセージが電話のアイコンで出力されて、リンクをクリックすると、kintoneに作成されたレコードが編集モードで開きます。
[コール]ボタンをクリックすると、登録された電話番号に、サラリーマン川柳スマートフォン編がコールされて、SMSが届きます。
この[コール]ボタンから呼ばれるAPIは課金対象となるので運営側で用意しています。
作り方はこちらのLINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン~ラッキーコンテンツ手順~に書いていますので、課金してもいいよ、って方はぜひお試しください。
目次
(4)Step Functionsで複数のLambdaを実行制御する
(6)Twilioからの電話受付と登録処理 ←今ここ
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター3年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
「Talend ハンズオンセミナー」に行ってきました
Talendとは データの整備・統合 ビッグデータ対応 ストリーミングデータ ア …
-
-
AWS Cloud Roadshow 2016 Osaka Night Event ミッドナイトJAWS
AWS Cloud Roadshow Osaka 2016のナイトイベントでミッ …
-
-
LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (5) LINEからの投稿へ返信と登録処理
作る部分 LINEからのメッセージを受けて各APIより返信し、StepFunct …
-
-
Java SE 7 Silver対策勉強をしながらメモ 2015/2/8
今日から練習問題を再確認。 ひと通りテキストを終えた安心感からかイージーミスが連 …
-
-
「Amazon SageMaker|機械学習エンジニア向けセッション+体験ハンズオン」に行ってきました
残念ながらハンズオンまではいれませんでしたが、前半のSageMakerの解説を聞 …
-
-
AKIBA.AWS ONLINE #05 – AWSスキルアップ編で発表しました
AKIBA.AWS ONLINE #05 – AWSスキルアップ 編に発表参加し …
-
-
JAWS FESTA 東海道 2016に行ってきました
JAWS FESTA 2016に行ってきました。 今回はボランティアスタッフ参加 …
-
-
Windowsでの自動化について考える会に出席させていただいた
2015年2月21日 土曜日 詳細はSlideShareの資料を確認してもらえれ …
-
-
ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順
ヤマムギとは from Mitsuhiro Yamashita 「AWSではじめ …
-
-
ヤマムギvol.17 AWSでALBとAuto Scalingのデモをしました
ゴールデンウィーク10日連続朝30分のデモチャレンジ5日目です。 81名さんもの …