Help us understand the problem. What is going on with this article?

Implicit/Explicit Invocation ~ Actions on Gogoleの呼び出し方を考える AoGを一発で呼び出すために ~

More than 1 year has passed since last update.

最近スマートスピーカーの話が沢山ですね。
実際問題 まだまだ家電が対応していないので、超便利になったとは感じられないのが悲しいところです。

ところでAoGを開発していると、「OK Google、~を使わせて」「〜させて」と2段階の会話が必要になるのが、
ストレスじゃありませんか?

手順が多いことで、コミュニケーションとしてのめんどくささを感じることが多いです。
ただAoGには、もっと効率的に機能を呼び出す方法があります。
今回はこの「呼び出し方法」「Implict/Explict Invoication」について書きたいと思います。

AoGの呼び出し方 Implicit/Explicit Invocationとは?

AoGの呼び出し方には大きく分けて2種類の方法があります。

  1. Explicit Invocation (明示的な呼び出し)
  2. Implicit Invocation (暗黙的な呼び出し)

Explicit Invocation

AoGの紹介記事でもよく見る、「OK Google、ほげほげにつなげて」という明示的にGoogle Assistantに対して、
アプリケーションを伝える呼び出し方です。

Kobito.EV1rc5.png
CC BY 3.0 from https://developers.google.com/actions/discovery/explicit

実際にこの呼び出し方のみをよく見るのですが、Explict Invocationの文法はこれだけではありません。

Explicit Invocationの要素

公式ページに掲載されている画像は以下です。
Kobito.fVm3J8.png
CC BY 3.0 from https://developers.google.com/actions/discovery/explicit

日本語にすると以下です。
ei.png

actionの呼び出しは「action invocation phrase」という名称のままでいいと思います。

ここで大事なのはこの「action invocation phrase」です。
つまり「「OK Google、ほげほげにつなげて」ではなく「OK Google、ほげほげでふがふがさせて」といえば、
一回の命令で、「アプリケーションの呼び出し」と「機能の呼び出し」をすることが出来ます。

Implicit Invocation

Explict Invocationは機能を利用するユーザが明示的にアプリケーションを指名する必要があり、
逆に言えばユーザがアプリケーションの名前を知らない場合は、何も行うことが出来ません。

それに対して、Implict Invocationはユーザがアプリケーションの名前を知らないとしても、アプリケーションの機能を呼び出すことができる呼び出し方法です。

Kobito.F8IV5F.png
CC BY 3.0 from https://developers.google.com/actions/discovery/implicit

Implict InvocationではユーザがGoogle Assistantに対して何か「ほげほげをしたい」というと、Google AssistantがアプリケーションからAction Invocation Phraseを探し、アプリケーションをお勧めしてくれます。
Screenshot_20171204-021323.png
※スマートフォンにて シミュレータだとうまくいったことがない....

Action invocation phraseの設定

Implicit/Explicit Invocationでaction invocation phraseを使うためには設定が必要です。
※ドキュメント上、Implict Invocationのところのみにaction invocation phraseの設定方法が書いてありますが、多分Explicit Invocationでも必要だと思います。

action invocation phraseを設定するにはまずDialogflowのIntegration画面を表示します。

Dialogflow1.png

次にGoogle AssistantのSettingsをクリックして、設定画面を表示します。
中断の「Additional triggering intents」の下にある「Select intent」を選択して、
intentを追加します。

Dialogflow2.png

追加を行ったら「Update Draft」をクリックします。
設定が行われているかを確認するにはAction Consoleを開きます。
そして、「Overview」→「Action discovery and re-engagement.」を表示します。

Dialogflow3.png

画面内に設定したIntentが表示されていればOKです。

Dialogflow4.png

あとは実機かシミュレータで試してみてください。
なおImplicit Invocationはシミュレータでうまくいったことがないです。。。。

Actions_on_Google.png

なお、私が作っているAoGだと何故か、Action Invocation Phraseとして使えるものと使えないものが発生しています。

Kobito.J1jzgJ.png
※LEDを赤色にしてというIntentはあるのに、Action Invocation Phraseとして使えてない

このあたりはまだ調査中なのでよくわかりません。。。。

まとめ

今回はImplicit/Explicit Invocationについて書きました。
結構AoGを使っているのですが、この機能に気がつくまで時間がかかりました。。。。
ちゃんとドキュメントは読まないとだめですね。

Implicit/Explicit Invocationをしっかり理解すると、ユーザがアプリケーションにたどり着くまでの手順を減らすことが出来ます。
これはユーザにとっても、提供者にとってもとてもメリットが有ることです。
ただ、ユーザストーリーや、フレーズにも気をつけないとUXがとても悪くなります。
このあたりについてもドキュメントがあるので一度よんでおくといいと思います

参考

Invocation and Discovery

soundTricker
Google API、GSuite、GCP、Angular(1&2)、Google Apps Scriptらへんの人 一応Google Developer Expert(Apps Script)です。 https://developers.google.com/community/experts/directory/profile/profile-keisuke_oohashi
https://plus.google.com/u/0/112329532641745322160/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away