これまで、Alexaスキルはいくつもつくってきたのですが、Googleアシスタント向けアプリはひとつしかつくったことがありませんでした。
https://amzn.to/2Y3vvhBamzn.to
https://assistant.google.com/services/a/uid/000000d6315c9755?hl=ja-JPassistant.google.com
が。突然「Googleドライブという名前のアプリをつくってエンジン音を流そう」と思い立ったので、すごく久しぶりにつくってみました。Google Assistant向けアプリを。これはAmazon EchoよりもGoogle Homeで使いたいですからね。
Google Homeから「Googleドライブ」に繋がるようにしてみました。 pic.twitter.com/ud67PiQXOd
— 君塚史高 (@ki_230) 2020年8月17日
ものすごくシンプルなアプリにも関わらず、作り方をすっかり忘れていて、若干苦戦してしまったので、今後のためにメモを残しておきます。
Actions on Googleの準備
プロジェクトの作成
まずは、Actions on Googleのプロジェクトを作成します。
https://console.actions.google.com にアクセスし、「New Projectボタン」を押します。
プロジェクトの命名
プロジェクト名の入力を求められるので入力します。
また、言語もリージョンも日本語・日本に変更しておきましょう。
アクションの種類を選択
とりあえず「Custom」を選択しておきます。
ビルドの仕方を選択
「Conversation Components」を選択します。
最初はとりあえず「Blank Project」を選択してしまって、その後どうしたらいいのか分からなくなってしまったのですが、「Conversation Components」を選択したらあっさりとDialogflowとの紐付けができました。「Blank Project」でもやり方があるのかもしれませんが、調べてません。
Quick Setupから呼び出し名を決める
「Decide how your Action is invoked」を押して、呼び出し名を決めましょう。
呼び出し名とは、「OK、Google、〇〇に繋いで」の〇〇の部分です。
呼び出し名を入力
Display nameの部分に呼び出し名を入力します。
ルールは色々あるのですが、代表的なものとしては、
・2単語以上で構成されていること
・予約語(OK、Google、launchなど)は使えない
などがあり、「グーグルドライブ」だと予約語に引っかかってエラーになってしまうのですが、特に一般公開するアプリではないのと、「Googleドライブ」という名前でなければ成り立たないアプリなので、このまま突き進みます。
呼び出し名のルールの詳細は こちら にまとまっているので、公開を目指す場合は目を通しておくと良いと思います。
Dialogflowとの紐付け
呼び出し名を保存したら、一度Overviewタブに戻ってから、再度Developタブに戻ってくると、右上に「Add Actionボタン」が出てきます。
「Add Actionボタン」を押下すると、CREATE ACTIONモーダルが開くので、右下の「BUILDボタン」を押しましょう。これで、一旦Actions on Google側の作業は完了です。
Dialogflowの作成
プロジェクトの作成
「BUILDボタン」を押すと別タブでDialogflowの画面が開きます。
プロジェクト名にはActions on Googleと同じものが入っているはずで、問題なければ「CREATEボタン」を押しましょう。
アプリが起動したときの処理を編集する
Intentsタブに移動し、「Default Welcome Intent」をクリックします。
ここが、「OK、Google、〇〇に繋いで」と言った直後に実行される処理になります。
クリックしたら、「Resposes」という項目が見えるまでスクロールしましょう。
Text Responseに、アプリに返して欲しい返答を入力します。
普通にテキストを入力すると合成音声で読み上げてくれるのですが、今回はmp3ファイルを再生したいので、SSMLでマークアップしましょう。
<speak><audio src="HOGEHOGE" /></speak>
このHOGEHOGEの部分をホスティングしてあるエンジン音のmp3に差し替えればOKです。
Alexaスキルの場合、mp3の形式に厳しいルールがあるのですが、ざっと試した感じ、Googleアシスタント向けアプリは結構どんなmp3でも大丈夫でした。多分長さとかには制限があると思うのですが、今回は調べてません。あと、多分httpsでホスティングする必要があると思います。
ついでに、mp3を再生し終わった後にアプリが終了するように「Set this intent as end of conversation」をONにしておきましょう。
これがOFFのままだと、mp3が再生し終わった後、ユーザーの発話待ちになります。
テストする
TESTボタンを押す
Dialogflowで「Integrationsタブ」に移動し、Google Assistant内の「INTEGRATION SETTING」をクリックします。
モーダルが表示されるので「TESTボタン」を押下します。
が。その前に「Auto-preview changes」をONにしておくと、開発が楽になるのでおすすめです。
テストする
「TESTボタン」を押すと、Actions on Googleのテストの画面が別タブで開きます。
デバイスを「Speaker」に切り替えてから(画面真ん中ぐらいにあるプルダウン)、あとは、存分にテストしましょう。
この際、同じアカウントでログイン済みの実機でもテストバージョンが動くようになっているはずです。
今回は以上です。お疲れ様でした。