Действия — это точки входа в ваше приложение, которые определяют модель вызова и обнаружения для вашего приложения. Вы объявляете действия в файле JSON, известном как пакет действий , который вы позже загружаете в свой проект разработчика, когда хотите протестировать или отправить свой проект действий на утверждение. Пакет действий — это файл JSON, который определяет действия в вашем проекте действий.
Чтобы определить действия в пакете действий, вы создаете намерение, которое определяет, как вызывается действие, и соответствующую конечную точку выполнения, когда намерение срабатывает. Вы можете создавать следующие типы действий:
- Действие по умолчанию: каждый проект Actions должен иметь приветственное намерение, которое служит отправной точкой для начала общения пользователей. Приветственное намерение срабатывает, когда пользователи явно вызывают действие, произнося его имя (например, «Эй, Google, поговори с exampleAction» ). Это приветственное намерение идентифицируется именем намерения
actions.intent.MAIN
. - Дополнительные действия для глубоких ссылок: вы можете создать дополнительные действия в своем пакете действий с намерениями, которые вы определяете самостоятельно. Это позволяет пользователям вызывать определенные функции, произнося имя действия вместе с намерением (например: «Эй, Google, поговори с exampleAction, чтобы найти обувь» ).
Дополнительные сведения о том, как работают эти модели вызова, см. в разделе «Намерения и вызов».
Определить действие по умолчанию
Каждый пакет действий должен иметь одно и только одно намерение, которое обрабатывает намерение actions.intent.MAIN
. Это намерение срабатывает, когда пользователи вызывают ваше действие по имени (например, «Эй, Google, поговори с exampleAction» ).
Чтобы создать шаблонный файл пакета действий с именем action.json
, выполните следующие действия:
- Загрузите CLI
gactions
. - Создайте локальный каталог для исходных файлов вашего проекта Action.
Выполните в терминале следующие команды:
$ cd PROJECT_DIRECTORY $ gactions init
После создания файла пакета действий замените содержимое заполнителя своими значениями. Вот пример action.json
с изменениями для 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" }
Определить дополнительные действия
Вы можете предоставить дополнительные Действия, которые будут служить точками входа. Это позволяет пользователям устранить неоднозначность своих намерений, позволяя им указать более подробную информацию о том, что они хотят сделать (например, «Эй, Google, поговори с exampleAction, чтобы найти мне туфли». ).
Чтобы определить дополнительные действия:
В массиве
Например, следующий код показывает дополнительное действие «купить», которое определяет:actions
укажите действие для каждой точки входа.- Имя намерения
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" }