Questa guida fornisce vari esempi per l'implementazione dei webhook e dei suggerimenti per la risoluzione dei problemi relativi ai webhook.
Impostare un parametro di sessione
I seguenti esempi mostrano come impostare un parametro di sessione.
Go
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Vedi la guida rapida sui webhook.Java
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Restituire una risposta di fulfillment
Gli esempi riportati di seguito mostrano come restituire una risposta di evasione degli ordini.
Go
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Vedi la guida rapida sui webhook.Java
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Imposta i parametri del modulo come richiesto
I seguenti esempi mostrano come segnalare un parametro come richiesto.
Java
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Convalidare un parametro del modulo
I seguenti esempi mostrano come convalidare un parametro del modulo.
Java
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
ID sessione log
Il seguente esempio mostra come registrare session ID
da una richiesta webhook.
Python
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risoluzione dei problemi
Quando risolvi i problemi di un webhook,
è utile registrare l'ID sessione dal webhook.
Il campo sessionInfo.session
di
WebhookRequest
contiene l'ID sessione.
L'ID sessione deve essere univoco per ogni conversazione e può aiutarti a confrontare i log dell'agente con i log webhook per le richieste che utilizzano lo stesso ID sessione.
La sezione ID sessione di registrazione sopra mostra come registrare l'ID sessione da un webhook.
Inoltre, se ospiti il tuo webhook su Cloud Functions o un'opzione serverless di Google Cloud simile, puoi utilizzare il campo trace
delle voci di log come filtro di log.
Una singola esecuzione di una funzione genera più voci di log con lo stesso valore di traccia.
L'esempio seguente utilizza sia l'ID sessione sia il valore della traccia per associare un determinato log degli errori dell'agente Dialogflow alle voci di log del webhook Cloud Functions corrispondenti. L'esempio utilizza i filtri di Cloud Logging per un agente che ha abilitato Cloud Logging.
1. Filtrare i log di Dialogflow per i log degli errori di un determinato agente
Utilizza il seguente filtro di Cloud Logging per filtrare i log di Dialogflow in base ai log degli errori di un determinato agente:
labels.location_id="global"
labels.agent_id="AGENT_ID"
severity=ERROR
Una voce di errore del log webhook ha il seguente aspetto:
{
"insertId": "-zi368ye1ie3r",
"jsonPayload": {
"message": "Webhook error: State: URL_UNREACHABLE, Reason: UNREACHABLE_5xx, HTTP status code: 500",
"code": 14
},
"resource": {
"type": "global",
"labels": {
"project_id": "PROJECT_ID"
}
},
"timestamp": "2022-10-05T19:44:53.098938Z",
"severity": "ERROR",
"labels": {
"session_id": "ec8781-f28-7e6-791-d7e992e8f",
"location_id": "global",
"agent_id": "807346f0-f501-42b5-9642-af59d5e98165"
},
"logName": "projects/PROJECT_ID/logs/dialogflow-runtime.googleapis.com%2Frequests",
"receiveTimestamp": "2022-10-05T19:44:53.222552658Z"
}
Nota il campo labels.session_id
,
che contiene l'ID sessione.
Utilizzerai l'ID sessione nel passaggio successivo.
2. Filtra i log delle funzioni Cloud Functions in base all'ID sessione
Usa il seguente filtro di Cloud Logging per filtrare i log della funzione Cloud Function in base all'ID sessione:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
textPayload="Debug Node: session ID = SESSION_ID"
I log risultanti corrispondono ai log webhook creati durante la sessione fornita. Ad esempio:
{
"textPayload": "Debug Node: session ID = ec8781-f28-7e6-791-d7e992e8f",
"insertId": "632bdb2b000b7c6c77d0cc62",
"resource": {
"type": "cloud_function",
"labels": {
"project_id": "PROJECT_ID",
"function_name": "webhook",
"region": "us-central1"
}
},
"timestamp": "2022-10-05T19:44:53.098938Z",
"severity": "INFO",
"labels": {
"execution_id": "ozt5bnz50eeo",
"instance_id": "00c61b117c1f116421aa5503bc80f9aa636b9ef117bb2722f3d54414085e62be6e55af0aa0250a63534262b31a3d3a14af8c940203f1915db8b25b"
},
"logName": "projects/PROJECT_ID/logs/cloudfunctions.googleapis.com%2Fcloud-functions",
"trace": "projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e",
"receiveTimestamp": "2022-10-05T19:44:53.222552658Z"
}
Prendi nota del campo trace
che verrà utilizzato nel passaggio successivo.
3. Filtra i log della funzione Cloud Functions per una traccia specifica
Usa il seguente filtro di Cloud Logging per filtrare i log delle funzioni Cloud Function per una traccia specifica:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
trace="projects/PROJECT_ID/traces/TRACE_ID"
dove TRACE_ID
è l'ultimo segmento della traccia. Ad esempio, TRACE_ID
per projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e
è e41eefc1fac48665b442bfa400cc2f5e
.
I log risultanti corrispondono a tutti i log webhook generati durante l'esecuzione della richiesta di webhook associata all'ID sessione del passaggio 1 e alla traccia del passaggio 2.