見出し画像

[kinToys] kintoneでJSONを書いてvonageで自動応答させるまで

#kintone #つくってみた

こんにちは、キン担ラボの本橋です。

本橋です

みなさん電話って好きですか? 僕は掛けるのも緊張しますし、唐突に鳴る呼び出しを受けるのにも心拍数が上がります。しゃべる言葉をあらかじめ用意しておかないと人と話せない性格です。

苦手な仕事はコードに任せたいとの思いから、これまでにも電話を非同期化して負担を減らすシステムを作ってきました。最近はvonageというCPaaS(Communication Platform as a Service)を使っています。

https://www.vonagebusiness.jp/

vonageは簡単に言うと音声案内とかSMS認証とか、電話関係のだいたいのことが実現できるプラットフォームです。Twilioをご存じの方はその方向だと思ってください。

そのvonageの仕組みの中に、NCCOという電話の応答ルールを記述するjsonのフォーマットがあります。NCCOファイルをvonageに読み込ませることで、電話をかけるとNCCOに書いたとおりに自動応答させることができます。

そのNCCOファイルをkintoneアプリから構築してみよう、というのがこのnoteの趣旨です。

流れとしては

  1. jsonで使用する情報を入力するためのkintoneアプリを作成

  2. jsonに変換するkinToysテンプレートを作成

  3. jsonを保存(NCCOのできあがり)

の3ステップです。

あとでvonageに読み込ませるためのWebサーバーを準備する必要もあるのですが、そこは別途分けて記事を書く予定にしています。

それではおつきあいください。


kintoneアプリを用意する

アプリテンプレートを用意しました。お急ぎの方はこちらをどうぞ。

テーブル形式でNCCOの各要素を追加していきます

kinToysを使ってJSONを作ろうとすると、条件分岐がないので繰り返し要素の最後の判定に困ります。そういう複雑な処理はkintone側に任せて、テーブルにjointというカラムを用意してそこにカンマを入力させています。

さらに個別に複雑な設定が必要になりそうなオプションは別フィールドに分けいます。数字入力で選択肢に回答するinputアクションや、音声回答を録音するrecordアクションなどで、タイムアウトや終了キーを設定したいときはそれぞれのオプションに手を加えてみてください。

kinToysテンプレートを用意する

kintoneのレコードをjsonファイル形式にまとめあげるにはkinToysを使います。こちらのChromeウェブストアからインストールしてください。

さきほどのkintoneアプリで使えるNCCO構築テンプレートはこんな具合です。

[
%ncco{
  {
    "action": "%action%",
    "text": "%text%",
    "language": "ja-JP",
    "style": "%style%"
    %options%
  } %joint%
}%
]

%ncco{ ~ }% はループ記法です。こちらを使って、kintoneレコード内にあるサブテーブルのそれぞれの行を繰り返し展開しています。

NCCOを保存する

ここまでで準備完了、kinToysのポップアップを開いてCopyボタンをクリックしてください。

うまいこと設定できていれば、下のようなjsonがクリップボードに保存されているかと思います。

[
  {
    "action": "talk",
    "text": "こんにちは、kintoneサンプルです",
    "language": "ja-JP",
    "style": "2"
  } ,
  {
    "action": "talk",
    "text": "こんなふうにおしゃべりできます",
    "language": "ja-JP",
    "style": "3"
  } ,
  {
    "action": "talk",
    "text": "いろいろな音声を喋らせて遊んでください。",
    "language": "ja-JP",
    "style": "4"
  } 
]

こちらを保存してvonageのAPIから呼び出すように設定していきます。

github gistにホスティングする

jsonファイルはvonageから呼び出せるように、どこかのWebサーバーに配置する必要があります。今回のように実験的にjsonを保存して外から呼び出したい、というケースではpostman mockserverやgithub gistがお手軽です。

github gistのrawファイルをそのまま呼び出すとHTTPヘッダのContent-Typeがプレーンテキストになってしまいます。vonageとしてはapplication/jsonで取得できないとエラーになってしまうため、githackを経由してHTTPヘッダを変更します。

このあたりの手順についてはまた別途記事化する予定です。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?