Działania to punkty wejścia do aplikacji, które definiują model wywoływania i odkrywania aplikacji. Deklarujesz akcje w pliku JSON nazywanym pakietem działań, który następnie prześlesz do projektu dewelopera, aby go przetestować lub przesłać do zatwierdzenia. Pakiet działań to plik JSON, który definiuje działania w projekcie Actions.
Aby zdefiniować działania w pakiecie działań, musisz utworzyć intencję definiującą sposób wywoływania działania i odpowiedni punkt końcowy realizacji, do którego wywołana jest intencja. Możesz tworzyć takie rodzaje działań:
- Akcja domyślna: każdy projekt Actions musi mieć intencję powitalną, która może służyć za punkt wyjścia do rozpoczynania rozmów. Intencja powitalna jest wywoływana, gdy użytkownik jednoznacznie wywoła akcję, wypowiadając jej nazwę (np. „OK Google, talk to ExampleAction”). Ta intencja powitalna jest identyfikowana przez nazwę intencji
actions.intent.MAIN
. - Dodatkowe działania związane z precyzyjnymi linkami: w pakiecie „Action” możesz tworzyć dodatkowe działania z intencjami, które zdefiniujesz samodzielnie. Dzięki temu użytkownicy mogą wywoływać określone funkcje, wymawiając nazwę działania wraz z intencją (np. „OK Google, porozmawiaj z przykładową akcją, aby znaleźć buty”).
Więcej informacji o działaniu tych modeli wywołania znajdziesz w sekcji Intencje i wywołania.
Definiowanie działania domyślnego
Każdy pakiet działań musi mieć tylko 1 intencję obsługującą intencję actions.intent.MAIN
. Intencja jest wyzwalana, gdy użytkownicy wywołają działanie po nazwie (np. „OK Google, talk to ExampleAction”).
Aby wygenerować powtarzalny plik pakietu działań o nazwie action.json
, wykonaj te czynności:
- Pobierz interfejs wiersza poleceń
gactions
. - Utwórz katalog lokalny dla plików źródłowych projektu akcji.
Uruchom w terminalu te polecenia:
$ cd PROJECT_DIRECTORY $ gactions init
Po wygenerowaniu pliku pakietu działań zastąp zawartość zastępczą wartościami. Oto przykład danych action.json
ze zmianami dla strony ExampleAction
:
{ "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" }
Zdefiniuj dodatkowe działania
Możesz podać dodatkowe działania, które będą działać jako punkty wejścia. Dzięki temu użytkownicy mogą jasno określić, co chcą zrobić (np. „OK Google, porozmawiaj z aplikacją ExampleAction, by znaleźć buty”).
Aby zdefiniować dodatkowe działania:
-
W tablicy
Na przykład ten kod zawiera dodatkowe działanie „Kup”, które definiuje:actions
określ działanie dla każdego punktu wejścia.- Nazwa intencji
com.example.ExampleAction.BUY
parameters
do przeanalizowania z danych wejściowych użytkownika po uruchomieniu tej intencji. Jest to przydatne, gdy potrzebujesz określonych danych z wyrażenia akcji, gdy użytkownicy wywołają działanie.queryPatterns
, które określają, co użytkownicy muszą powiedzieć, by wywołać intencję. Wzorce zapytań mogą zawierać typy schema.org określające parametry do analizy.
{ "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" ] } } }
- Nazwa intencji
-
Określ realizację tej intencji, określając
conversationName
odpowiadający elementowi w obiekcieconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Oto przykład pełnego pakietu działań:
{ "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" }