Twilioで受けた電話の着信履歴を、APIGatewayだけでkintoneに保存

ふと思った

 

Twilio使って、電話申し込みを受け付ける場合で「電話番号だけ取得すればいい」というケースってありますよね?
でまぁ、Twilioからサーバー経由でkintoneに着信情報を保存とかで出来るわけです。t2k_01

 

最近だと、サーバーレスアーキテクチャという事で、
t2k_02

こんな構成がよくありますよね。

でも、この前、こんなサイトを見つけまして。。。
Kintone_REST_APIを呼ぶAmazon_APIGatewayをCloudFormationで作る_-_Qiitahttp://qiita.com/monamu/items/5fb59ac0d747b8db09c4

いやまぁ、「ズンドコキヨシ」のリンクを追っかけてて気づいたんですけどね(汗

あ、Kが大文字・・・

kintoneへAPIGatewayから直接POST出来るなら、Twilioからも出来るよね!

t2k_03

という事で試してみました。

 

実際にやってみよう

 

Integration Requestでは、こんな変換が必要t2k_04

あと、受け取ったのを再マッピングで、こんな感じ名称未設定

これを、こんな風にマッピング。
API_Gateway

ここまでで、kintoneへ通話履歴を追加する事ができます。・・・たぶん、出来るはずです。。。

 

まだ足りない

 

このままだと、Twilio側はTwiMLが返ってこないので、いきなり回線が切れたり、アプリケーションエラーとか言われたりなど、使う上ではちょっと問題があります。

なので、TwiMLを返せるようにもう少し修正します。

kintoneにレコード追加した場合のレスポンスは、

{"id":"21","revision":"1"}

という感じなので、TwiMLには使えそうにありません。しかもjsonで返ってくるので、application/xmlに変換する必要もあります。
なので、こんな感じで、Integration Responseに追加します。API_Gateway

あと、Response Modelにもapplication/xmlを設定しておく必要があります。多分。API_Gateway

というか、この辺は理解が浅いので、間違ってるかもです。ちゃんとしたのがあれば教えてくだされー

でまぁ、ここまで出来れば、
・電話を受け付けて発信元番号を記録
ってのが、超サーバーレスで実現します。

こうして作ったアプリに、プロ生Twilioデモ_-_レコードの一覧
みたいな、一括発信ボタンを配置すれば、無敵ですね!

このボタンの詳細は、プロ生を見た人だけが知っていたり。
http://pronama.azurewebsites.net/2016/05/28/pronama-41-at-matsuyama/

 

ちなみに、APIGatewayをもう1つ作れば、プッシュでアンケートも出来ますね。更には、kintoneからGETして喋らせるのも出来るはず。多分。
それを、Cloudformationで一括作成できるので、構築が楽で良い事づくめ!

Lambdaを使った構成で、これと同じなのを作ってはいるのですが、やはりやってみたくて手を出してしましました(^^;;
Lambdaで作ったほうが100倍速いとかいうツッコミは聞こえません(ぉ

Twilio x AWS x kintone の組み合わせは可能性無限大で楽しいですね。おすすめ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です