18. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
App Directory https://assistant.google.com/explore?hl=ja_jp
19. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
標準開発環境とSDK
20. 標準開発環境
Actions on Google
• Googleアシスタントを
機能拡張する開発者向け
のプラットフォーム
• アプリの設定管理、
シミュレータなどの機能
がある。リリース管理も。
• Webツール
• 自然言語対話プラット
フォーム
• アプリの会話フローの構
築や会話文からフレーズ
の抽出、会話分析が可能
• Webツール
• FirebaseのFaaS
• アプリのバックエンド処
理を担う
• 他のFirebase機能との
連携に強み
• Node.jsが実行可能
プログラミング不要 プログラミング不要
Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
21. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
標準開発環境の全体像
Google Cloud Platform プロジェクト
(アプリ)
プロジェクト
エージェント
接続
Firebaseプロジェクト
管理 呼び出し
JSファイル
シミュレータ
Google
アシスタント
呼び出し
Actions on
Google
22. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
標準開発環境の全体像 (プロジェクトの作成)
Google Cloud Platform プロジェクト
(アプリ)
Actions on
Google
プロジェクト
エージェント
開発者
接続
Firebaseプロジェクト
管理 呼び出し
JSファイル
シミュレータ
Google
アシスタント
呼び出し
作成
23. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
標準開発環境の全体像 (バックエンド開発)
Google Cloud Platform プロジェクト
(アプリ)
プロジェクト
エージェント
開発者
接続
Firebaseプロジェクト
管理 呼び出し
JSファイル
シミュレータ
Google
アシスタント
呼び出し
作成
Actions on
Google
deploy
24. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
標準開発環境の全体像 (バックエンド開発)
Google Cloud Platform プロジェクト
(アプリ)
プロジェクト
エージェント
開発者
接続
Firebaseプロジェクト
管理 呼び出し 接続
外部API
JSファイル
呼び出し
シミュレータ
設定
Google
アシスタント
呼び出し
作成
Actions on
Google
deploy
設定
25. Google Cloud Platform プロジェクト
Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
標準開発環境の全体像 (動作確認・テスト)
(アプリ)
プロジェクト
エージェント
開発者
接続
Firebaseプロジェクト
管理 呼び出し 接続
外部API
JSファイル
呼び出し
シミュレータ
Deploy
設定
Google
アシスタント
呼び出し
作成
Actions on
Google
動作確認・テスト
26. Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
開発を効率化するSDKの活用
Google Cloud Platform プロジェクト
(アプリ)
プロジェクト
エージェント
開発者
接続
Firebaseプロジェクト
管理 呼び出し 接続
外部API
JSファイル
呼び出し
シミュレータ
動作確認・テスト Deploy
設定
Google
アシスタント
呼び出し
作成
Actions on
Google
Client Libraryを活用
27. • Dialogflowからのリクエストを扱いやすく
• Intentに対応するバックエンドでの処理の実装を簡単に
• Actions on Googleの機能利用をサポート
• GUI
• 位置情報取得
• ログイン etc..
• 利用可能言語:Node.js
Actions on Google Client Library について
Copyright (C) 2018 Namito.Satoyama, Shinji.Ichien All Rights Reserved. 無断引用・転載禁止
一通り、実装が完了すると、Action on Googleで利用できるwebシミュレータをつかて、動作確認やテストを実施していきます。
バグが見つかれば、これまでの手順を再度回してく感じになるでしょう。
これが、3つの大きな登場人物をわたりあるいたGoogleアシスタントアプリ開発の全体像になります。
Actions on Google Client Libraryといい、これは、
Dialogflowからのリクエストを扱いやすくし、また
Dialogflowでの会話を構成する要素であるIntentに対応するCloiud Functionsでのバックエンドでの処理の実装を簡単にしてくれます。
また、Actions on Googleには、GUIを表示したり、位置情報を表示したりする機能があるのですが、それの実装をサポートしてくれます。
利用可能な実行環境としては、Node.jsになります。
Actions on Googleには、Surface capabilitiesという仕組みがあります。
これは、音声出力や画面出力可能なマルチデバイス対応のために、 様々な形態のデバイス面で最適化したレスポンスを返すための仕組みです。
大きく2つの種類があって、
1つ目は、サポートされるsurfaceのみでアプリを実行可能とするsurface capabilites for Action
2つめは、アプリの実行時に、surfaceを認識し、処理分岐させるRuntime surface capabilitiesがあります。
アプリ実行時に判断することで、画面によって、レスポンスを変更したり、全くことなる会話を掲示したり、
Google HomeからスマホにとSurface面を移動して、会話としては連続的に、会話を掲示したりすることが可能となります。
次から、個別に説明していきます。
Surface capabilities for actionsの設定は、
右の図にある通り、アプリの管理設置画面であるActions on Google consoleから設定します。
それぞれ、音声、画面、メディア再醒、ブラウザ機能を必須とするか確認項目があります。
図の例ですと、画面ありを必須としているので、Google Homeでの利用をできなくすることができます。
次は、実行時の話です。
前に紹介したActions on Google Cleint Libarayで判断を用意にするプロパティがあります。
左の上部のコードにあるとおり、surface.capabilitiesのhasメソッドを利用し、引数にcapability文字列を設定することで、判断できます。
これにより、アプリの応答文を変更することができます。
これがResponse branchingです。