1. Panoramica
La piattaforma per sviluppatori Assistente Google ti consente di creare software per estendere la funzionalità dell'Assistente Google, un assistente personale virtuale, su più di un miliardo di dispositivi, tra cui smart speaker, telefoni, auto, TV, cuffie e altro ancora. Gli utenti interagiscono con l'assistente nella conversazione per svolgere attività, ad esempio fare la spesa o prenotare una corsa. In qualità di sviluppatore, puoi utilizzare la piattaforma per sviluppatori dell'assistente per creare e gestire facilmente esperienze di conversazione piacevoli ed efficaci tra gli utenti e il tuo servizio di distribuzione di terze parti.
Questo codelab tratta concetti di livello principiante per lo sviluppo con l'SDK Actions per l'Assistente Google. non è necessaria alcuna esperienza pregressa con la piattaforma per completarla. In questo codelab, creerai un'azione semplice per l'Assistente Google che racconta agli utenti la loro fortuna mentre iniziano la loro avventura nel mitico paese di Gryffinberg. Nel codelab di livello 2 dell'SDK Actions, crei ulteriormente questa azione per personalizzare ulteriormente la fortuna dell'utente in base al suo input.
Cosa creerai
In questo codelab, creerai un'azione semplice con le seguenti funzioni:
- Risponde agli utenti con un messaggio di benvenuto
- Pone agli utenti una domanda e risponde in modo appropriato alla selezione dell'utente
- Fornisce chip di suggerimenti su cui gli utenti possono fare clic per fornire input
- Modifica il messaggio di benvenuto dell'utente a seconda che si tratti o meno di un utente di ritorno.
Al termine di questo codelab, l'azione completata avrà il seguente flusso conversazionale (il testo accanto al microfono rappresenta l'input dell'utente, mentre il testo accanto a chi parla rappresenta la risposta dell'azione):
Cosa imparerai a fare
- Come creare un progetto nella console di Actions
- Come utilizzare lo strumento gactions per eseguire il push e il pull del tuo progetto di azione tra la console di Actions e il tuo file system locale
- Come inviare una richiesta all'utente dopo che ha richiamato l'azione
- Come elaborare l'input di un utente e restituire una risposta
- Come testare l'azione nel simulatore di Actions
- Come implementare il completamento utilizzando l'editor Cloud Functions
Che cosa ti serve
Nel tuo ambiente devono essere presenti i seguenti strumenti:
- Un IDE o un editor di testo a tua scelta
- Un terminale per eseguire i comandi shell per Node.js e npm
- Un browser web, ad esempio Google Chrome.
2. Configura
Le seguenti sezioni descrivono come configurare l'ambiente di sviluppo e creare il progetto Actions.
Verifica le impostazioni delle autorizzazioni Google
Per testare l'azione creata in questo codelab, devi abilitare le autorizzazioni necessarie affinché il simulatore possa accedere all'azione.
Per attivare le autorizzazioni, procedi nel seguente modo:
- Accedi a Gestione attività.
- Se non l'hai ancora fatto, accedi con il tuo Account Google.
- Attiva le seguenti autorizzazioni:
- Attività web e app
- In Web & Attività app, seleziona la casella di controllo Includi la cronologia di Chrome e le attività svolte su siti, app e dispositivi che usano i servizi Google**.**
crea un progetto Actions
Il progetto Actions è un contenitore per l'azione.
Per creare il tuo progetto Actions per questo codelab, segui questi passaggi:
- Apri la console di Actions.
- Fai clic su Nuovo progetto.
- Inserisci un Nome progetto, ad esempio
actions-codelab
. Il nome è solo per riferimento interno. Successivamente, potrai impostare un nome esterno per il progetto.
- Fai clic su Crea progetto.
- Nella schermata Che tipo di azione vuoi creare?, seleziona la scheda Personalizzata.
- Fai clic su Avanti.
- Nella schermata Come vuoi crearlo?, seleziona la scheda Progetto vuoto.
- Fai clic su Inizia a creare.
Salva l'ID progetto per l'azione
L'ID progetto è un identificatore univoco dell'Azione. L'ID progetto è necessario per diversi passaggi di questo codelab.
Per recuperare l'ID progetto:
- Nella console Azioni, fai clic sui tre puntini verticali (inserisci qui l'icona).
- Fai clic su Impostazioni progetto.
- Copia l'ID progetto**.**
Associa un account di fatturazione
Se non hai ancora un account di fatturazione, devi crearne uno e associarlo al tuo progetto in Google Cloud per eseguire il deployment del fulfillment in un secondo momento con Cloud Functions.
Per associare un account di fatturazione al progetto:
- Vai alla pagina Fatturazione Google Cloud.
- Fai clic su Aggiungi account di fatturazione o Crea account.
- Inserisci i dati di pagamento.
- Fai clic su Inizia la mia prova senza costi o Invia e abilita fatturazione.
- Vai alla pagina Fatturazione Google Cloud.
- Fai clic sulla scheda I miei progetti.
- Fai clic sui tre puntini sotto Azioni accanto al progetto Actions per il codelab.
- Fai clic su Modifica fatturazione.
- Nel menu a discesa, seleziona l'account di fatturazione che hai configurato.
- Fai clic su Imposta account.
Per evitare addebiti, segui i passaggi nella sezione Pulisci il tuo progetto alla fine di questo codelab.
Installa l'interfaccia a riga di comando di gactions
In questo codelab, utilizzerai lo strumento dell'interfaccia a riga di comando (CLI) di gactions per sincronizzare il tuo progetto Actions tra la console Actions e il tuo file system locale.
Per installare l'interfaccia a riga di comando gactions, segui le istruzioni riportate in Installare lo strumento a riga di comando gactions.
Scaricare il progetto Actions
Per iniziare a sviluppare l'azione, scarica il progetto Actions dalla console Actions.
Per scaricare il progetto Actions, segui questi passaggi:
- Per creare una nuova directory e passare a quella directory, esegui questi comandi:
mkdir myproject cd myproject
- Per copiare la configurazione del progetto Actions nel file system locale, esegui questo comando:
gactions pull --project-id <projectID>
Comprendere la struttura dei file
Il progetto Actions scaricato dalla console Actions è rappresentato in una struttura di file YAML. L'immagine seguente mostra una rappresentazione generale della struttura dei file:
La struttura dei file è costituita da quanto segue:
actions/
: rappresenta il progetto Actions. Il sistema chiamaactions.yaml
quando l'Azione viene richiamata, quindi chiama il filecustom/global/actions.intent.MAIN.yaml
.custom/
: la directory da utilizzare per modificare l'azione.global/
: questa directory contiene gli intent di sistema che la piattaforma aggiunge automaticamente al tuo progetto. Scoprirai di più sugli intent di sistema più avanti in questo codelab.manifest.yaml
: un file che contiene informazioni trasportabili o non specifiche di un determinato progetto e che può essere spostato da un progetto all'altro.settings/
: rappresenta le impostazioni di un progetto Actions, ad esempio il nome visualizzato, le impostazioni internazionali predefinite e la categoria.
3. Avviare una conversazione
Gli utenti avviano la conversazione con l'azione mediante una chiamata. Ad esempio, se hai un'azione denominata MovieTime, gli utenti possono richiamare l'azione dicendo una frase come "Hey Google, parla con MovieTime", dove MovieTime è il nome visualizzato. L'azione deve avere un nome visualizzato se vuoi eseguirne il deployment in produzione. Tuttavia, per testare l'azione, non è necessario definire il nome visualizzato. Invece, puoi utilizzare la frase "Parla con la mia app di prova" nel simulatore per richiamare l'azione. Scoprirai di più sul simulatore più avanti in questa sezione.
Devi modificare la chiamata principale per definire cosa succede dopo che un utente richiama l'azione.
Per impostazione predefinita, quando viene attivata la chiamata, l'Azione fornisce un prompt generico ("Inizia a creare l'Azione definendo la chiamata principale").
Nella sezione successiva personalizzerai il prompt per la chiamata principale nel file custom/global/actions.intent.MAIN.yaml
.
Configura la chiamata principale
Puoi modificare il prompt di chiamata principale nel file actions.intent.MAIN.yaml
.
Per modificare la richiesta che l'Azione rimanda all'utente quando richiama l'Azione, procedi nel seguente modo:
- Apri
custom/global/actions.intent.MAIN.yaml
nell'editor di testo. - Sostituisci il testo nel campo
speech
(Start building your action...
) con il seguente messaggio di benvenuto:A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey.
actions.intent.MAIN.yaml
handler:
staticPrompt:
candidates:
- promptResponse:
firstSimple:
variants:
- speech: A wondrous greeting, adventurer! Welcome to the mythical land of
Gryffinberg! Based on your clothes, you are not from around these lands.
It looks like you're on your way to an epic journey.
transitionToScene: actions.scene.END_CONVERSATION
- Salva il file.
Testa la chiamata principale nel simulatore
La console di Actions fornisce uno strumento web per testare l'azione chiamato simulatore. L'interfaccia simula i dispositivi hardware e le relative impostazioni, in modo da poter conversare con l'azione come se fosse in esecuzione su uno smart display, uno smartphone, un altoparlante o KaiOS.
Quando richiami l'Azione, questa dovrebbe rispondere con il prompt personalizzato che hai aggiunto ("Un saluto meraviglioso, avventuriero!...").
Puoi usare il comando gactions deploy preview
per testare l'azione nella console senza aggiornare la versione del progetto Actions. Quando esegui questo comando, nessuna delle modifiche apportate nel file system locale viene propagata alle versioni di cui è stato eseguito il deployment del progetto Actions, ma puoi testarle in una versione di anteprima.
Per testare la chiamata principale dell'azione nel simulatore:
- Per eseguire il deployment del progetto nella console Actions per i test, esegui questo comando nel terminale:
gactions deploy preview
Dovresti ricevere un output simile al seguente:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Copia l'URL fornito e incollalo in un browser.
- Per richiamare l'azione nel simulatore, digita
Talk to my test app
nel campo Input e premiEnter
.
Quando attivi la chiamata principale dell'Azione, l'assistente risponde con il tuo messaggio di benvenuto personalizzato. A questo punto, la conversazione termina dopo che l'assistente ha risposto con un saluto. Nella sezione successiva modificherai l'Azione in modo che la conversazione prosegua.
Visualizza log eventi
Nella scheda Test della console Actions, il riquadro mostra i log eventi, che visualizzano la cronologia delle conversazioni come log eventi. Ogni log eventi mostra gli eventi che si sono verificati durante il turno della conversazione.
Al momento l'Azione ha un log eventi che mostra sia l'input dell'utente ("Parla con la mia app di prova") sia la risposta dell'Azione. Il seguente screenshot mostra il log eventi dell'azione:
Se fai clic sulla freccia verso il basso accanto a Talk to my test app
nel log eventi, puoi vedere gli eventi, organizzati cronologicamente, che si sono verificati in quel turno della conversazione:
userInput
: corrisponde all'input dell'utente ("Parla con la mia app di prova")interactionMatch
: corrisponde alla risposta di chiamata principale dell'Azione, che è stata attivata dall'input dell'utente. Se espandi questa riga facendo clic sulla freccia, puoi vedere il prompt che hai aggiunto per la chiamata principale (A wondrous greeting, adventurer!...
)endConversation
: corrisponde alla transizione selezionata nell'intentMain invocation
, che al momento termina la conversazione. Scopri di più sulle transizioni nella sezione successiva di questo codelab.
I log eventi offrono visibilità sul funzionamento dell'azione e sono strumenti utili per eseguire il debug dell'azione in caso di problemi. Per vedere i dettagli di un evento, fai clic sulla freccia accanto al nome dell'evento, come mostrato nello screenshot seguente:
4. Crea la conversazione dell'Azione
Ora che hai definito cosa succede dopo che un utente richiama l'azione, puoi creare il resto della conversazione dell'azione. Prima di continuare con questo codelab, familiarizza con i seguenti termini per comprendere come funziona la conversazione dell'azione:
L'azione può includere una o più scene e devi attivare ciascuna scena prima di eseguirla. L'azione che crei in questo codelab ha una sola scena chiamata Start
. Il modo più comune per attivare una scena è configurare l'azione in modo che, quando l'input dell'utente corrisponde a un intent all'interno di una scena, quest'ultimo attivi la transizione a un'altra scena e la attivi.
Ad esempio, immagina un'azione ipotetica che fornisca all'utente fatti sugli animali. Quando l'utente richiama questa azione, viene abbinata l'intent Main invocation
e attiva la transizione a una scena denominata Facts.
. Questa transizione attiva la scena Facts
, che invia all'utente la seguente richiesta: Would you like to hear a fact about cats or dogs?
All'interno della scena Facts
c'è un intent personalizzato chiamato Cat
, che contiene frasi di addestramento che l'utente potrebbe dire per ascoltare un fatto relativo ai gatti, ad esempio "Voglio sentire un fatto gatto" o "gatto". Quando l'utente chiede di ascoltare una storia sui gatti, l'intent Cat
viene abbinato e attiva una transizione a una scena chiamata Cat fact.
. La scena Cat fact
si attiva e invia all'utente un messaggio che include una curiosità.
Figura 1. Il flusso di una tipica svolta conversazionale in un'azione creata con l'SDK Actions.
Insieme, scene, intent e transizioni costituiscono la logica della conversazione e definiscono i vari percorsi che l'utente può intraprendere nella conversazione dell'Azione. Nella sezione seguente, creerai una scena e definirai in che modo viene attivata dopo che un utente ha richiamato l'azione.
Transizione dalla chiamata principale alla scena
In questa sezione creerai una nuova scena chiamata Start
, che invia un prompt all'utente per chiedere se vuole che la sua fortuna venga raccontata. Aggiungi anche una transizione dalla chiamata principale alla nuova scena Start
.
Per creare questa scena e aggiungere una transizione, segui questi passaggi:
- Apri
custom/global/actions.intent.MAIN.yaml
nell'editor di testo. - Sostituisci il testo nel campo
transitionToScene
(actions.scene.END_CONVERSATION
) con il seguente:transitionToScene: Start
actions.intent.MAIN.yaml
handler:
staticPrompt:
candidates:
- promptResponse:
firstSimple:
variants:
- speech: Welcome to the mythical land of Gryffinberg! Based on your clothes,
you are not from around these lands. It looks like you're on your way
to an epic journey.
transitionToScene: Start
Questo indica all'azione di passare dalla chiamata principale alla scena Start
.
- Salva il file.
- Nel terminale, crea una nuova directory
scenes
nella directorycustom
:
mkdir custom/scenes
- Crea un nuovo file denominato
Start.yaml
nella directoryscenes
, che rappresenta la scenastart
nella tua azione:
touch custom/scenes/Start.yaml
- Apri
Start.yaml
nell'editor di testo. - Incolla il seguente codice nel file
Start.yaml
:
Start.yaml
onEnter:
staticPrompt:
candidates:
- promptResponse:
firstSimple:
variants:
- speech: Before you continue on your quest, would you like your fortune
told?
Nel codice del file Start.yaml
è presente un campo chiamato onEnter
, che è la prima fase in esecuzione nel ciclo di vita di una scena.
In questo caso, il prompt (Before you continue on your quest...
) viene aggiunto alla coda dei prompt quando l'utente accede per la prima volta alla scena Start
.
Aggiungere chip di suggerimenti
I chip di suggerimento offrono all'utente suggerimenti cliccabili che l'Azione elabora come input dell'utente. In questa sezione, aggiungerai i chip di suggerimento Yes
e No
che vengono visualizzati sotto il prompt appena configurato (Before you continue on your quest, would you like your fortune told?
) per supportare gli utenti su dispositivi con schermo.
Per aggiungere chip di suggerimento al prompt della scena Start
, segui questi passaggi:
- Aggiorna il codice in
Start.yaml
in modo che corrisponda al seguente snippet di codice, che include il codice per configurare i chip di suggerimento:
Start.yaml
onEnter:
staticPrompt:
candidates:
- promptResponse:
firstSimple:
variants:
- speech: Before you continue on your quest, would you like your fortune
told?
suggestions:
- title: "Yes"
- title: "No"
- Salva il file.
Testa l'azione nel simulatore
A questo punto, l'azione dovrebbe passare dalla chiamata principale alla scena Start
e chiedere all'utente se vuole che la sua fortuna venga raccontata. Nel display simulato dovrebbero apparire anche i chip di suggerimenti.
Per testare l'azione nel simulatore:
- Nel terminale, esegui questo comando:
gactions deploy preview
Dovresti ricevere un output simile al seguente:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Copia l'URL fornito e incollalo in un browser.
- Fai clic su Test per accedere al simulatore.
- Digita
Talk to my test app
nel campo Immissione e premiEnter
. L'azione dovrebbe rispondere con il promptMain invocation
e il prompt della scenaStart
aggiunto, "Prima di continuare la missione, vuoi che la fortuna ti venga preparata?", con i chip di suggerimento visualizzati.
Il seguente screenshot mostra questa interazione:
- Fai clic sul chip di suggerimento Sì o No per rispondere alla richiesta. Puoi anche dire "Sì" o "No" o inserire
Yes
oNo
nel campo Immissione.
Quando rispondi al prompt, l'azione risponde con un messaggio che indica che non è in grado di comprendere l'input: "Non ho capito. Puoi riprovare?" Poiché non hai ancora configurato l'Azione in modo da comprendere e rispondere all'input "Sì" o "No", l'Azione associa l'input a un intent NO_MATCH
.
Per impostazione predefinita, l'intent di sistema NO_MATCH
fornisce risposte generiche, ma puoi personalizzarle per indicare all'utente che non hai compreso l'input. L'assistente termina la conversazione dell'utente con l'azione dopo che non è in grado di trovare una corrispondenza per tre volte con l'input dell'utente.
Aggiungi intent yes
e no
Ora che gli utenti possono rispondere alla domanda che pone l'azione, puoi configurarla per comprendere il comportamento degli utenti ("Sì" o "No"). Nelle sezioni seguenti, creerai intent personalizzati che vengono associati quando l'utente dice "Sì" o "No" e aggiungerai questi intent alla scena Start
.
Crea intent yes
Per creare l'intent yes
:
- Nel terminale, crea una nuova directory denominata
intents
nella directorycustom
:
mkdir custom/intents
- Crea un nuovo file denominato
yes.yaml
nella directoryintents
:
touch custom/intents/yes.yaml
- Apri
yes.yaml
nell'editor di testo. - Incolla in
yes.yaml
il seguente snippet di codice contenente le frasi di addestramento:
yes.yaml
trainingPhrases:
- of course
- let's do it
- ok
- sure
- "y"
- "yes"
- Salva il file.
Aggiungi l'intent yes
a Start
scena
Ora l'Azione è in grado di capire quando un utente esprime un intento "sì". Puoi aggiungere l'intent personalizzato yes
alla scena Start
, dato che l'utente sta rispondendo al prompt di Start
("Prima di continuare la missione, vuoi sapere la tua fortuna?").
Per aggiungere questo intent personalizzato alla scena Start
, segui questi passaggi:
- Apri
custom/scenes/Start.yaml
nell'editor di testo. - Aggiungi i gestori
intentEvents
eyes
alla fine del fileStart.yaml
:
Start.yaml
intentEvents:
- handler:
staticPrompt:
candidates:
- promptResponse:
firstSimple:
variants:
- speech: Your future depends on the item you choose to use for your quest. Choose wisely! Farewell, stranger.
intent: "yes"
transitionToScene: actions.scene.END_CONVERSATION
Quando viene trovato l'intent yes
, alla coda dei prompt viene aggiunto il messaggio "Il futuro dipende dall'elemento che scegli di utilizzare per la missione...". La scena Start
passa quindi alla scena del sistema actions.scene.END_CONVERSATION
, che fornisce i prompt nella coda dei prompt e termina la conversazione.
Testa yes
intent nel simulatore
A questo punto, l'azione capisce quando l'utente vuole ascoltare il suo destino e restituisce la risposta appropriata.
Per testare questo intent nel simulatore:
- Nel terminale, esegui questo comando:
gactions deploy preview
Dovresti ricevere un output simile al seguente:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Copia l'URL fornito e incollalo in un browser.
- Fai clic su Test per accedere al simulatore.
- Per testare l'Azione nel simulatore, digita
Talk to my test app
nel campo Input e premiEnter
. - Digita
Yes
nel campo Immissione e premiEnter
. In alternativa, fai clic sul chip di suggerimento Sì.
L'Azione risponde all'utente comunicandogli che la fortuna dipende dall'aiuto scelto. L'Azione termina quindi la sessione perché hai configurato la transizione End conversation
per l'intent yes
.
Crea intent no
Ora puoi creare l'intent no
in modo che l'azione possa comprendere e rispondere all'utente quando non vuole ascoltare la sua fortuna.
Per creare questo intent:
- Nel terminale, crea un nuovo file denominato
no.yaml
nella directoryintents
:
touch custom/intents/no.yaml
- Apri
no.yaml
nell'editor di testo. - Incolla le seguenti frasi di addestramento nel file
no.yaml
:
no.yaml
trainingPhrases:
- nope
- I don't want
- "n"
- "no"
- nah
- no thanks
- Salva il file.
Aggiungi l'intent no
a Start
scena
Ora l'azione è in grado di capire quando un utente esprime "no" o qualcosa di simile a "no", ad esempio "no". Devi aggiungere l'intent personalizzato no
alla scena Start
perché l'utente sta rispondendo al prompt di Start
("Prima di continuare la missione, vuoi sapere il futuro?").
Per aggiungere questo intent per la scena Start
:
- Apri
custom/scenes/Start.yaml
nell'editor di testo. - Aggiungi il seguente gestore
no
sotto il gestoreyes
inStart.yaml
:
Start.yaml
- handler:
staticPrompt:
candidates:
- promptResponse:
firstSimple:
variants:
- speech: I understand, stranger. Best of luck on your quest! Farewell.
intent: "no"
transitionToScene: actions.scene.END_CONVERSATION
- Salva il file.
Testa no
intent nel simulatore
A questo punto, l'azione capisce quando l'utente non vuole ascoltare il suo destino e restituisce la risposta appropriata.
Per testare questo intent nel simulatore:
- Nel terminale, esegui questo comando:
gactions deploy preview
Dovresti ricevere un output simile al seguente:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Copia l'URL fornito e incollalo in un browser.
- Fai clic su Test per accedere al simulatore.
- Digita
Talk to my test app
nel campo Immissione e premiEnter
. - Digita
No
nel campo Immissione e premiEnter
. In alternativa, fai clic sul chip di suggerimentoNo
.
Invece di destinare all'utente la sua fortuna, l'Azione gli augura buona fortuna nel percorso. L'Azione termina quindi la sessione perché hai configurato la transizione End conversation
per l'intent no
.
5. Implementa il fulfillment
Al momento, le risposte dell'Azione sono statiche; Quando viene attivata una scena contenente un prompt, l'Azione invia la stessa richiesta ogni volta. In questa sezione, implementerai fulfillment, che contiene la logica per creare una risposta conversazionale dinamica.
Il completamento identifica se l'utente è un utente di ritorno o un nuovo utente e modifica il messaggio di benvenuto dell'azione per gli utenti di ritorno. Il messaggio di benvenuto viene abbreviato per gli utenti di ritorno e riconosce il suo ritorno: "Un saluto meraviglioso, avventuriero! Rieccoci nella terra mistica di Gryffinberg!"
Per questo codelab, utilizzerai l'editor Cloud Functions per modificare il codice di fulfillment ed eseguirne il deployment.
L'azione può attivare webhook che notificano il completamento di un evento che si verifica durante una chiamata o in parti specifiche dell'esecuzione di una scena. Quando viene attivato un webhook, l'azione invia una richiesta con un payload JSON al tuo fulfillment insieme al nome del gestore da utilizzare per elaborare l'evento. Questo gestore esegue una logica e restituisce una risposta JSON corrispondente.
Crea il tuo fulfillment
In questa sezione modificherai il fulfillment per generare prompt diversi per gli utenti di ritorno e per i nuovi utenti quando richiamano l'Azione.
Per aggiungere questa logica al fulfillment:
- Nel terminale, assicurati di trovarti nella directory root del tuo progetto e crea una nuova directory
webhooks
:
mkdir webhooks
- Crea un nuovo file denominato
ActionsOnGoogleFulfillment.yaml
nella directorywebhooks
:
touch webhooks/ActionsOnGoogleFulfillment.yaml
- Apri
ActionsOnGoogleFulfillment.yaml
nell'editor di testo. - Aggiungi il gestore
greeting
e i contenutiinlineCloudFunction
al fileActionsOnGoogleFulfillment.yaml
:
ActionsOnGoogleFulfillment.yaml
handlers:
- name: greeting
inlineCloudFunction:
executeFunction: ActionsOnGoogleFulfillment
Il file ActionsOnGoogleFulfillment.yaml
definisce i gestori webhook (come il gestore greeting
) e indica all'azione di utilizzare Cloud Functions come endpoint webhook.
- Crea una nuova directory
ActionsOnGoogleFulfillment
nella directorywebhooks
:
mkdir webhooks/ActionsOnGoogleFulfillment
- Crea un nuovo file denominato
index.js
nella directoryActionsOnGoogleFulfillment
:
touch webhooks/ActionsOnGoogleFulfillment/index.js
- Apri
index.js
nell'editor di testo. - Aggiungi il codice seguente a
index.js
:
index.js
const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');
const app = conversation({debug: true});
app.handle('greeting', conv => {
let message = 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!';
if (!conv.user.lastSeenTime) {
message = 'Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you\'re on your way to an epic journey.';
}
conv.add(message);
});
exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
Questo codice definisce il gestore greeting
, che invia il saluto appropriato al
utente.
- Salva il file.
- Crea un nuovo file denominato
package.json
nella directoryActionsOnGoogleFulfillment
:
touch webhooks/ActionsOnGoogleFulfillment/package.json
Il file package.json
specifica le dipendenze e altri metadati per il webhook.
- Apri
package.json
nell'editor di testo. - Copia il codice da questo repository GitHub e incollalo nel file
package.json
. - Salva il file.
comprendi il codice
Il tuo fulfillment, che utilizza la libreria Actions on Google Fulfillment per Node.js, risponde alle richieste HTTP dell'Assistente Google.
Nello snippet di codice precedente, definisci il gestore greeting
, che verifica se l'utente ha già visitato l'azione con la proprietà lastSeenTime
. Se la proprietà lastSeenTime
non è definita, l'utente è nuovo e riceve il saluto destinato ai nuovi utenti. In caso contrario, il messaggio conferma il ritorno dell'utente e genera un saluto modificato.
Aggiorna la chiamata principale per attivare un webhook
Ora che hai definito la funzione greeting
, puoi configurare il gestore di eventi greeting
nel tuo intent di chiamata principale, in modo che l'Azione chiami questa funzione quando l'utente richiama l'azione.
Per configurare l'Azione in modo che chiami il nuovo gestore greeting
:
- Apri
custom/global/actions.intent.MAIN.yaml
nell'editor di testo. - Sostituisci il codice in
actions.intent.MAIN.yaml
con il seguente codice:
actions.intent.MAIN.yaml
handler:
webhookHandler: greeting
transitionToScene: Start
- Salva il file.
Ora, quando viene trovata una corrispondenza con l'intent di chiamata principale, viene chiamato il gestore webhook greeting
.
Testa la chiamata principale aggiornata nel simulatore
Per testare l'azione nel simulatore:
- Nel terminale, esegui questo comando:
gactions deploy preview
Dovresti ricevere un output simile al seguente:
✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
- Copia l'URL fornito e incollalo in un browser.
- Per testare l'Azione nel simulatore, digita
Talk to my test app
nel campo Input e premiEnter
.
Poiché hai già testato l'azione in precedenza in questo codelab, non sei un nuovo utente, quindi riceverai il seguente breve saluto: "Un saluto meraviglioso, avventuriero! Rieccoci nella mitica terra di Gryffinberg!"
6. Visualizza l'azione con Actions Builder
L'SDK Actions è compatibile con un IDE basato sul web chiamato Azioni Builder integrato nella console di Actions. Puoi eseguire il push del tuo file system locale alla bozza dell'azione nella console con il comando gactions push
. A differenza di gactions deploy preview
, che ti consente solo di testare l'azione nel simulatore, gactions push
sposta tutti i contenuti dai file locali ad Actions Builder.
La console di Actions fornisce una rappresentazione visiva della configurazione dell'Azione. Visualizzare l'azione mappata visivamente può essere utile durante lo sviluppo e non influisce sulla versione dell'azione pubblicata per il test.
Per eseguire il push del progetto Actions e visualizzarlo nella console Actions, segui questi passaggi:
- Nel terminale, esegui questo comando per eseguire il push del progetto alla console Actions:
gactions push
Dovresti ricevere un output simile al seguente:
✔ Done. Files were pushed to Actions Console, and you can now view your project with this URL: https://console.actions.google.com/project/{project-id}/overview. If you want to test your changes, run "gactions deploy preview", or navigate to the Test section in the Console.
- Copia l'URL fornito e incollalo in un browser.
- Nella console di Actions, fai clic su Develop nella barra di navigazione in alto.
- Fai clic sulla freccia menu a discesa accanto a Scene e fai clic su Avvia. Dovresti vedere una rappresentazione visiva della scena
Start
dell'azione, come mostrato nello screenshot seguente:
Pulisci il progetto [consigliato]
Per evitare possibili addebiti, ti consigliamo di rimuovere i progetti che non intendi utilizzare. Per eliminare i progetti creati in questo codelab:
- Per eliminare il progetto Cloud e le risorse, completa i passaggi elencati nella sezione Arresto (eliminazione) dei progetti.
- (Facoltativo) Per rimuovere immediatamente il progetto dalla console di Actions, completa i passaggi elencati nella sezione Eliminare un progetto. Se non completi questo passaggio, il progetto viene rimosso automaticamente dopo circa 30 giorni.
7. Complimenti!
Conosci le nozioni di base della creazione di Actions per l'Assistente Google con l'SDK Actions.
Argomenti trattati
- Come configurare un progetto Actions nella console Actions
- Come utilizzare l'SDK Actions per creare il tuo progetto Actions sul tuo file system locale
- Come aggiungere un prompt alla chiamata principale in modo che gli utenti possano avviare una conversazione con l'azione
- Come creare un'interfaccia di conversazione con scene, intent, transizioni, chip di suggerimenti e completamento
- Come testare l'azione con il simulatore di Actions
Scopri di più
Esplora le seguenti risorse per saperne di più sulla creazione di Actions per l'Assistente Google:
- Il sito della documentazione ufficiale per lo sviluppo di Actions for Google Assistant
- Pagina GitHub di Actions on Google per codice campione e librerie
- La community ufficiale di Reddit per gli sviluppatori che lavorano con l'assistente
Segui @ActionsOnGoogle su Twitter per gli ultimi annunci e twitta con #AoGDevs per condividere ciò che crei.
Sondaggio di opinione
Prima di andare, compila un breve sondaggio sulla tua esperienza.