次の記事に触発されて「サイゼリヤ1000円ガチャ」をスマートスピーカーで作成してみました。
サイゼリヤ1000円ガチャをつくってみた(Heroku + Flask + LINEbot)
使用したツールは、Voiceflow です。Amazon AlexaとGoogle Home版の2種類が作成できるので、おすすめです。
概要
実際の動きは、twitterに動画を上げましたので、参照ください。
Amazon Alexa
処理の流れ
- Code Block 1つ目
115品目あるメニュー表から、データを引用するために乱数を発生させます。
var maxNo = 115 ;
//Random number generator for values 1 through var maxNo
no = Math.floor((Math.random() * maxNo) + 1);
- Integrations Block
Voiceflowの特色の一つとして、難しいコードを書かずに、Googleスプレッドシートを扱える事があります。手軽にデータベースが使えるのは、非常に便利です。
@marusho_summers 様がGitHubで公開されているデータをSQLiteを開けるフリーソフトで開いて、Excelに貼りつけ。整えて、Googleスプレッドシートにアップロードしました。
Voiceflowの設定は、次の画像の通りです。
※ たまに、googleスプレッドシートの認証が上手くいかない時があります。
「User is Request failed with status code 500 」と表示されたら、ハードリフレッシュのためにCtrl+Shift+R(Winクローム)を実行してください。
それでも改善しない場合は、Googleアカウント>アカウントにアクセスできるアプリから、「Voiceflow Creator Tool」を選択して、アクセス権の削除を実行すると、認証からやり直す事が出来ます。
- Code Block 2つ目
hantei = Number(sum_budget) + Number(budget);
AlexaかGoogle Homeか判定
Speak Block だけだと、文字が表示されないのでCard Blockも使いました。
しかし、Googleアシスタントだと文字が2重に出力されるので、プラットホームを判定して、処理を分けました。(変更前は、概要の画像のようになってました)
乱数にならない
PROJECT TESTINGと表示されるので、Debug Modeをオンにします。
paiza.ioで乱数を発生させる場所をテストしてみたのですが、問題ありませんでした。
今後の課題とします。
本記事で伝えたい事
短い時間でサービスを作るハッカソンなど、動くことを実感したい場面に、Voiceflowをお勧めします。
Voiceflowはいいぞ!