Akcje to punkty wejścia do aplikacji definiujące model wywołania i odkrywania. Działania zadeklarujesz w pliku JSON o nazwie Pakiet akcji, który następnie przesyłasz do projektu dewelopera, gdy chcesz go przetestować lub przesłać do zatwierdzenia projekt Actions. Pakiet akcji to plik JSON, który określa działania w projekcie Actions.
Aby zdefiniować działania w pakiecie akcji, utwórz intencję definiującą sposób wywoływania akcji i odpowiadający jej punkt końcowy realizacji w przypadku wywołania intencji. Możesz tworzyć następujące typy działań:
- Działanie domyślne: każdy projekt w Actions musi mieć intencję powitalną działającą jako punkt wejścia użytkowników do rozpoczynania rozmów. Intencja powitalna jest wywoływana, gdy użytkownik wprost wywoła akcję, wypowiadając jej nazwę (np. „OK Google, talk to ExampleAction”). Ta intencja powitalna jest identyfikowana z nazwą intencji
actions.intent.MAIN
. - Dodatkowe działania na potrzeby precyzyjnych linków: w pakiecie akcji możesz tworzyć dodatkowe działania z intencjami, które samodzielnie definiujesz. Dzięki temu użytkownicy mogą wywołać określone funkcje, wypowiadając nazwę akcji wraz z intencją (na przykład: „OK Google, porozmawiaj z przykładową akcje, by znaleźć buty”).
Więcej informacji o działaniu tych modeli wywołań znajdziesz w sekcji Intencje i wywołanie.
Określanie działania domyślnego
Każdy pakiet akcji musi mieć 1 intencję, która obsługuje intencję actions.intent.MAIN
. Intencja jest wyzwalana, gdy użytkownicy wywołają akcję, korzystając z nazwy (na przykład „OK Google, talk to ExampleAction”).
Aby wygenerować plik pakietu akcji o nazwie action.json
, wykonaj te czynności:
- Pobierz
gactions
CLI. - Utwórz katalog lokalny na pliki źródłowe projektu Action.
Uruchom te polecenia w terminalu:
$ cd PROJECT_DIRECTORY $ gactions init
Po wygenerowaniu pliku pakietu akcji zastąp treść zastępczą odpowiednimi wartościami. Oto przykład danych action.json
ze zmianami dla 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 akcje pełniące funkcję punktów wejścia. Dzięki temu użytkownicy mogą precyzyjniej określić, co chcą zrobić (np. „OK Google, porozmawiaj z przykładową akcje, by znaleźć mi buty”).
Aby zdefiniować dodatkowe działania:
-
W tablicy
Na przykład ten kod zawiera dodatkowe działanie „buy”, które definiuje:actions
określ akcję dla każdego punktu wejścia.- Nazwa intencji:
com.example.ExampleAction.BUY
parameters
, aby przeanalizować dane wejściowe użytkownika po uruchomieniu tej intencji. Jest to przydatne, gdy potrzebujesz określonych danych z wyrażenia działania, gdy użytkownicy wywołują to działanie.queryPatterns
, które określają, co użytkownicy muszą powiedzieć, aby aktywować intencję. Wzorce zapytań mogą zawierać typy schema.org określające parametry do przeanalizowania.
{ "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 element
conversationName
odpowiadający elementowi w obiekcieconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Oto przykład pełnego pakietu akcji:
{ "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" }