As ações são pontos de entrada para o app que definem o modelo de invocação e descoberta dele. Você declara ações em um arquivo JSON conhecido como pacote de ações, que será enviado depois para seu projeto de desenvolvedor quando quiser testar ou enviar o projeto do Actions para aprovação. Um pacote de ações é um arquivo JSON que define as ações no projeto.
Para definir ações no pacote, crie uma intent que defina como a ação será invocada e o endpoint de fulfillment correspondente para quando a intent for acionada. Você pode criar os seguintes tipos de ações:
- Ação padrão:cada projeto do Actions precisa ter uma intent de boas-vindas que funcione
como ponto de entrada para os usuários iniciarem conversas. A intent de boas-vindas é
acionada quando os usuários invocam explicitamente uma ação falando o nome dela (por
exemplo, "Ok Google, fale com ExampleAction"). Essa intent de boas-vindas é identificada pelo
nome da intent
actions.intent.MAIN
. - Outras ações para links diretos:você pode criar outras ações no pacote com intents definidas por você. Isso permite que os usuários invoquem uma funcionalidade específica dizendo o nome de uma ação junto com uma intent (por exemplo: "Ok Google, fale com o ExampleAction para encontrar sapatos").
Consulte Intents e invocação para mais informações sobre como esses modelos de invocação funcionam.
Definir uma ação padrão
Cada pacote de ações precisa ter apenas uma intent que processe a
intent actions.intent.MAIN
. Essa intent é acionada quando os usuários invocam sua
ação pelo nome (por exemplo, "Ok Google, fale com ExampleAction").
Para gerar um arquivo de pacote de ações padrão chamado action.json
, siga
estas etapas:
- Faça o download da CLI
gactions
. - Crie um diretório local para os arquivos de origem do seu projeto da ação.
Execute estes comandos no terminal:
$ cd PROJECT_DIRECTORY $ gactions init
Depois que o arquivo do pacote de ações for gerado, substitua o conteúdo do marcador pelos seus
valores. Confira um exemplo de action.json
com mudanças em 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" }
Definir ações adicionais
Você pode fornecer ações adicionais que servem como pontos de entrada. Isso permite que os usuários desambiguem a intent ao permitir que eles especifiquem mais detalhes sobre o que querem fazer. Por exemplo, "Ok Google, fale com ExampleAction para encontrar alguns sapatos".
Para definir outras ações:
-
Na matriz
Por exemplo, o código a seguir mostra uma ação "buy" adicional que define:actions
, especifique uma ação para cada ponto de entrada.- O nome da intent
com.example.ExampleAction.BUY
. parameters
para analisar a entrada do usuário quando essa intent for acionada. Isso é útil se você precisar de dados específicos da frase quando os usuários invocarem a ação.queryPatterns
, que definem o que os usuários precisam dizer para acionar a intent. Os padrões de consulta podem incluir tipos do schema.org que definem parâmetros para análise.
{ "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" ] } } }
- O nome da intent
-
Especifique o fulfillment dessa intent, especificando um
conversationName
que corresponda a um item no objetoconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Confira um exemplo de um pacote de ações completo:
{ "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" }