Les actions sont des points d'entrée dans votre application qui définissent l'appel et la découverte pour votre application. Vous déclarez les actions dans un fichier JSON appelé package d'actions. que vous importez ensuite dans votre projet de développement lorsque vous souhaitez tester ou soumettre votre projet Actions pour approbation. Un package d'action est un fichier JSON définit les actions de votre projet Actions.
Pour définir des actions dans votre package d'actions, vous devez créer un intent qui définit la manière l'action est appelée et le point de terminaison de traitement correspondant lorsque l'intent est déclenché. Vous pouvez créer les types d'actions suivants:
- Action par défaut:chaque projet Actions doit comporter un intent d'accueil qui agit
comme point d'entrée pour que
les utilisateurs démarrent des conversations. L'intent d'accueil est
déclenché lorsque les utilisateurs appellent explicitement une action en prononçant son nom (par
(par exemple, "Hey Google, parle à ExampleAction"). Cet intent d'accueil est identifié par
le nom de l'intent
actions.intent.MAIN
. - Actions supplémentaires pour les liens profonds:vous pouvez créer des actions supplémentaires dans votre package Action avec des intents que vous définissez vous-même. Cela permet aux utilisateurs d'appeler une fonctionnalité spécifique en prononçant le nom d'une action (par exemple: "Hey Google, parle à ExampleAction pour trouver des chaussures").
Consultez la section Intents et appels pour découvrir comment ces modèles d'appel fonctionnent.
Définir une action par défaut
Chaque package d'action doit comporter un seul intent qui gère le
Intent actions.intent.MAIN
. Cet intent est déclenché lorsque les utilisateurs appellent votre
par nom d'action (par exemple, "Hey Google, parle à ExampleAction").
Pour générer un fichier de package d'action récurrent nommé action.json
, utilisez la méthode
procédez comme suit:
- Téléchargez la CLI
gactions
. - Créez un répertoire local pour les fichiers sources de votre projet d'action.
Exécutez les commandes suivantes dans le terminal:
$ cd PROJECT_DIRECTORY $ gactions init
Une fois le fichier du package d'action généré, remplacez le contenu de l'espace réservé par votre
valeurs. Voici un exemple de action.json
avec des modifications pour 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" }
Définir des actions supplémentaires
Vous pouvez fournir des actions supplémentaires qui font office de points d'entrée. Cela permet aux utilisateurs de clarifier leur intention en leur permettant de spécifier plus de détails sur ce qu'ils à faire (par exemple, "Hey Google, parle à ExampleAction pour trouver de chaussures).
Pour définir des actions supplémentaires:
-
Dans le tableau
Par exemple, le code suivant affiche une autre expression "buy" Action définissant: <ph type="x-smartling-placeholder">actions
, spécifiez une action pour chaque point d'entrée.- </ph>
- Un nom d'intent
com.example.ExampleAction.BUY
parameters
pour analyser l'entrée utilisateur lorsque cet intent est déclenché. Cela peut s'avérer utile si vous avez besoin de données spécifiques de la phrase d'action les utilisateurs appellent l'action.queryPatterns
qui définissent ce que les utilisateurs doivent dire pour déclencher l'intent. Les formats de requête peuvent inclure des types schema.org. qui définissent les paramètres à analyser.
{ "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 nom d'intent
-
Spécifiez le traitement de cet intent en spécifiant un
conversationName
. correspondant à un élément de l'objetconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Voici un exemple de package Action complet:
{ "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" }