アクションは、呼び出しと検出を定義するアプリへのエントリ ポイントです。 必要があります。アクションは、アクション パッケージと呼ばれる JSON ファイルで宣言します。 後でテストやテストを行う場合にデベロッパー プロジェクトにアップロードする 承認を受けるためにアクション プロジェクトを送信します。アクションパッケージは は、Actions プロジェクトのアクションを定義します。
アクション パッケージでアクションを定義するには、まずアクションを アクションが呼び出されたときに対応するフルフィルメント エンドポイント インテントがトリガーされます。作成できるアクションには、次のタイプがあります。
- デフォルトのアクション: すべての Actions プロジェクトには、ウェルカム インテントを実装する必要があります。
ユーザーが会話を始めるための入り口として利用できます。ウェルカム インテントは、
ユーザーがアクションの名前を発話して明示的に呼び出すとトリガーされます(
(例: 「OK Google, ExampleAction と話して」)。このウェルカム インテントは、
actions.intent.MAIN
インテント名。 - ディープリンクのための追加のアクション: 以下の場所で追加のアクションを作成できます。 自分で定義したインテントを含むアクション パッケージ。これによりユーザーは インテントと一緒にアクション名を指定することで特定の機能を呼び出す (例: 「OK Google, ExampleAction に話しかけて靴を探して」)。
詳細については、インテントと呼び出しをご覧ください。 これらの呼び出しモデルが機能します
デフォルトのアクションを定義する
すべてのアクション パッケージには、特定のアクションのアクションを
actions.intent.MAIN
インテント。このインテントはユーザーが
名前によるアクション(例: 「OK Google, ExampleAction と話して」)。
action.json
という名前のボイラープレート アクション パッケージ ファイルを生成するには、
手順は次のとおりです。
gactions
CLI をダウンロードします。- アクション プロジェクトのソースファイル用のローカル ディレクトリを作成します。
ターミナルで次のコマンドを実行します。
$ cd PROJECT_DIRECTORY $ gactions init
アクション パッケージ ファイルが生成されたら、プレースホルダのコンテンツを
使用できます。ExampleAction
に変更を加えた action.json
の例を次に示します。
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }
追加のアクションを定義する
エントリ ポイントとなる追加のアクションを指定できます。これによりユーザーは ユーザーが何を行うかを詳しく指定できるようにすることで、ユーザーの意図を明確にします。 (例: 「OK Google, ExampleAction に話しかけて 靴」など)。
追加のアクションを定義するには:
-
たとえば、次のコードは、追加の「buy」という以下を定義するアクション: <ph type="x-smartling-placeholder">actions
配列で、すべてのエントリ ポイントにアクションを指定します。- </ph>
com.example.ExampleAction.BUY
というインテント名parameters
: このインテントがトリガーされたときにユーザー入力から解析します。 これは、アクション フレーズの特定のデータが必要なときに ユーザーがアクションを呼び出します。queryPatterns
: インテントをトリガーするために必要なユーザーの呼びかけを定義します。 クエリパターンには Schema.org タイプを含めることができる 引数を定義します。
{ "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } }
-
conversationName
を指定して、このインテントのフルフィルメントを指定します。 これはconversations
オブジェクトのアイテムに対応します。{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
これがアクション パッケージ全体の例です。
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } }, { "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }