Aktionen sind Einstiegspunkte zu Ihrer App, die das Aufruf- und Erkennungsmodell für Ihre App definieren. Sie deklarieren Aktionen in einer JSON-Datei, auch als Aktionspaket bezeichnet. Diese Datei laden Sie später in Ihr Entwicklerprojekt hoch, wenn Sie Ihr Actions-Projekt testen oder zur Genehmigung einreichen möchten. Ein Aktionspaket ist eine JSON-Datei, die die Aktionen in Ihrem Actions-Projekt definiert.
Um Aktionen im Aktionspaket zu definieren, erstellen Sie einen Intent, der definiert, wie die Aktion aufgerufen wird und den entsprechenden Auftragsausführungsendpunkt für das Auslösen des Intents definiert. Sie können die folgenden Arten von Aktionen erstellen:
- Standardaktion:Jedes Actions-Projekt muss einen Begrüßungs-Intent haben, der Nutzern als Einstiegspunkt für Unterhaltungen dient. Der Begrüßungs-Intent wird ausgelöst, wenn Nutzer eine Aktion explizit aufrufen, indem sie ihren Namen aussprechen (z. B. "Hey Google, sprich mit ExampleAction"). Dieser Begrüßungs-Intent wird durch den Namen des Intents
actions.intent.MAIN
identifiziert. - Zusätzliche Aktionen für Deeplinks:Sie können in Ihrem Aktionspaket zusätzliche Aktionen mit selbst definierten Intents erstellen. Nutzer können dann bestimmte Funktionen aufrufen, indem sie einen Aktionsnamen zusammen mit einem Intent sagen (z. B. „Hey Google, sprich mit Schuhen, um Schuhe zu finden“).
Weitere Informationen zur Funktionsweise dieser Aufrufmodelle finden Sie unter Intents und Aufrufe.
Standardaktion festlegen
Jedes Aktionspaket darf nur einen Intent enthalten, der den Intent actions.intent.MAIN
verarbeitet. Dieser Intent wird ausgelöst, wenn Nutzer Ihre Aktion anhand des Namens aufrufen (z. B. „Hey Google, sprich mit ExampleAction“).
So generieren Sie eine Boilerplate-Aktionspaketdatei mit dem Namen action.json
:
- Laden Sie die
gactions
-Befehlszeile herunter. - Erstellen Sie ein lokales Verzeichnis für die Quelldateien Ihres Aktionsprojekts.
Führen Sie im Terminal die folgenden Befehle aus:
$ cd PROJECT_DIRECTORY $ gactions init
Ersetzen Sie den Platzhalterinhalt durch Ihre Werte, nachdem die Aktionspaketdatei generiert wurde. Hier ein Beispiel für action.json
mit Änderungen für 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" }
Zusätzliche Aktionen definieren
Sie können zusätzliche Aktionen angeben, die als Einstiegspunkte dienen. Auf diese Weise können Nutzer ihre Absicht unterscheiden, indem sie mehr Details dazu angeben können, was sie tun möchten (z. B. "Hey Google, sprich mit ExampleAction, um mir ein paar Schuhe zu suchen.").
So definieren Sie zusätzliche Aktionen:
-
Geben Sie im Array
Der folgende Code zeigt beispielsweise eine zusätzliche „buy“-Aktion, die Folgendes definiert:actions
für jeden Einstiegspunkt eine Aktion an.- einen Intent-Namen von
com.example.ExampleAction.BUY
parameters
zum Parsen der Nutzereingabe, wenn dieser Intent ausgelöst wird. Dies ist nützlich, wenn du bestimmte Daten aus der Aktionsformulierung benötigst, wenn Nutzer die Aktion aufrufen.queryPatterns
definieren, was Nutzer sagen müssen, um den Intent auszulösen. Abfragemuster können Schema.org-Typen enthalten, die zu parsende Parameter definieren.
{ "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" ] } } }
- einen Intent-Namen von
-
Geben Sie die Auftragsausführung für diesen Intent an. Dazu geben Sie einen
conversationName
an, der einem Element imconversations
-Objekt entspricht.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Hier ist ein Beispiel für ein vollständiges Aktionspaket:
{ "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" }