動作是應用程式的進入點,可定義叫用和探索 您在名為動作套件的 JSON 檔案中宣告動作。 稍後要上傳到開發人員專案 將 Actions 專案送交核准。Action 套件是 JSON 檔案 在 Actions 專案中定義「動作」
如要在動作套件中定義動作,請建立一個意圖,以定義 系統會叫用 Action 和相應的執行要求端點, 意圖您可以建立下列類型的動作:
- 預設動作:每個 Actions 專案都必須有歡迎意圖,藉此採取行動
做為使用者展開對話的進入點歡迎意圖
當使用者說出動作名稱來明確叫用動作時觸發 (例如
例如「Ok Google,與 ExampleAction」)。這項歡迎意圖是以
actions.intent.MAIN
意圖名稱。 - 深層連結的其他動作:您可以在以下位置建立其他動作: 含有您自行定義的意圖的動作套件。這樣一來 藉由說出動作名稱和意圖來叫用特定功能 (例如:「Ok Google,透過 ExampleAction 尋找幾鞋」)。
如要進一步瞭解如何操作,請參閱「意圖和叫用」一文 都能順利運作
定義預設動作
每個動作套件都必須有一個和一個意圖,用於處理
actions.intent.MAIN
意圖。當使用者叫用
依名稱執行動作,例如「Ok Google,與 ExampleAction」。
如要產生名稱為 action.json
的樣板動作套件檔案,請
步驟如下:
- 下載
gactions
CLI。 - 為 Action 專案的來源檔案建立本機目錄。
在終端機中執行下列指令:
$ cd PROJECT_DIRECTORY $ gactions init
產生 Action 套件檔案後,請將預留位置內容換成
輕鬆分配獎金以下是對 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」這個動作會定義:actions
陣列中,為每個進入點指定動作。com.example.ExampleAction.BUY
的意圖名稱parameters
用於在觸發這項意圖時剖析使用者輸入內容。 如果您需要在操作詞組中需要特定資料,這個方法就很實用。 使用者叫用動作queryPatterns
,用於定義使用者需要說什麼才能觸發意圖。 查詢模式可包含 Schema.org 類型 這個 API 會定義要剖析的參數。
{ "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" }