Las acciones son puntos de entrada a tu app que definen la invocación y el descubrimiento. para tu app. Declaras acciones en un archivo JSON conocido como el paquete de acciones. que luego subirás a tu proyecto de desarrollador cuando quieras probar o envía tu proyecto de Acciones para su aprobación. El paquete Action es un archivo JSON que Define las acciones en tu proyecto de acciones.
Para definir acciones en tu paquete de acciones, debes crear un intent que defina cómo se invoca la Acción y el extremo de entrega correspondiente para cuando se activa el intent. Puedes crear los siguientes tipos de acciones:
- Acción predeterminada: Todos los proyectos de acciones deben tener un intent de bienvenida que actúe
como punto de entrada para que los usuarios inicien conversaciones. El intent de bienvenida es
se activa cuando los usuarios invocan explícitamente una acción pronunciando su nombre (por
por ejemplo, "Hey Google, habla con AcciónDeEjemplo"). Este intent de bienvenida se identifica con
el nombre del intent
actions.intent.MAIN
- Acciones adicionales para la vinculación directa: Puedes crear Acciones adicionales en el paquete Action con intents que tú definas. Esto permite que los usuarios para invocar una funcionalidad específica con solo decir un nombre de Acción junto con un intent (por ejemplo: "Hey Google, habla con AcciónDeEjemplo para buscar unos zapatos").
Consulta Intents y invocación para obtener más información sobre cómo funcionan estos modelos de invocación.
Cómo definir una acción predeterminada
Cada paquete de acción debe tener un único intent que controle las
actions.intent.MAIN
. Este intent se activa cuando los usuarios invocan tu
Acción por nombre (por ejemplo, "Hey Google, habla con AcciónDeEjemplo").
Para generar un archivo de paquete de acción estándar llamado action.json
, toma la siguiente información:
los siguientes pasos:
- Descarga la CLI de
gactions
. - Crea un directorio local para los archivos fuente de tu proyecto de acción.
Ejecuta los siguientes comandos en la terminal:
$ cd PROJECT_DIRECTORY $ gactions init
Una vez que se genere el archivo del paquete de acciones, reemplaza el contenido del marcador de posición por tu
de salida. Este es un ejemplo de action.json
con cambios para 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" }
Cómo definir acciones adicionales
Puedes proporcionar Acciones adicionales que actúen como puntos de entrada. Esto permite que los usuarios desambiguar su intención al permitirles especificar más detalles sobre lo que lo que quieres hacer (por ejemplo, "Hey Google, habla con ExampleAction para encontrarme zapatos”.).
Para definir Acciones adicionales, sigue estos pasos:
-
En el array
Por ejemplo, el siguiente código muestra una “compra” adicional Acción que define lo siguiente:actions
, especifica una acción para cada punto de entrada.- Un nombre de intent de
com.example.ExampleAction.BUY
parameters
para analizar la entrada del usuario cuando se activa este intent Esto es útil si necesitas datos específicos de la frase Acción cuando los usuarios invoquen la acción.queryPatterns
que definen lo que los usuarios deben decir para activar el intent. Los patrones de consulta pueden incluir tipos de Schema.org. que definen los parámetros para analizar.
{ "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" ] } } }
- Un nombre de intent de
-
Para especificar la entrega de este intent, especifica un
conversationName
que corresponde a un elemento del objetoconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Este es un ejemplo de un paquete Action 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" }