Google Assistantアプリ開発まとめ
Google Homeが届いてから色々遊んでみてGoogle Assistantアプリを作ってみたので、Alexaに移る前にいったんまとめてみる(招待メールまだ来ないけど)。
構成
最もスタンダードな構成は以下のようになる。
Action on Google
Assistantアプリの開発プラットフォーム。会話メッセージと音声のリクエストを受信しレスポンスを返す。実機に繋いだシュミレーターによるテストなどもここから行える。
Dialogflow(旧API.AI)
チャットボット作成のプラットフォーム。元々はAPI.AIという名前で2016年9月にGoogleに買収され、自然言語対話の統合的なプラットフォームとして進化し2017年10月にDialogflowに名称が変更になった。会話のコントロールを軸としてWebHookで他のプラットフォームと連携したり外部のチャットサービスと連携することができる。
Dialogflowは標準でFirebaseと連携している。そのためDialogflowでプロジェクトを作成すると必ずFirebaseにもプロジェクトが作成され、Dialogflowで設定した内容がスクリプト化されてFirebaseに保存される。Firebase上に配置するスクリプトはInline Editorから直接編集してカスタマイズすることも可能。
Firebase
Firebase上に配置されるスクリプトはNode.jsベースのコードなので独自に開発してデプロイすることもできる。Dialogflow上からできることは限られているので、会話の内容を元にデータベースにアクセスしたり、Googleの他のサービスと連携するような仕組みを構築する場合はFirebaseのプロジェクトを作って開発することになる。firebase-tools に action-on-google
のライブラリが準備されているため比較的用意に実装ができる。
その他サービスを使う
上記の構成はあくまで標準的な構成で、公開されているSDKやAPIを使うことで他のプラットフォームを使って連携することもできる。
Fulfillment Hosting | Actions on Google | Google Developers
Firebaseは無料アカウントだと外部ネットワークにアクセスできないため、WebHook部分はFirebaseを使わずにHerokuから外部サービスと連携させるようなやり方も試してみた。firebase-tools
を使わない場合は自分でJSONフォーマットのレスポンスを返すことになる。その際の注意点はQiitaに幾つかまとめておいた。