ふと思った

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 の組み合わせは可能性無限大で楽しいですね。おすすめ。