Questa guida fornisce vari esempi per l'implementazione webhook e consigli 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 Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Consulta la guida rapida agli webhook.Java
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Restituire una risposta di evasione
Gli esempi riportati di seguito mostrano come restituire una risposta di completamento.
Go
Per autenticarti a Dialogflow, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Consulta le Guida rapida ai webhook.Java
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Imposta i parametri del modulo come richiesto
Gli esempi riportati di seguito mostrano come contrassegnare un parametro come obbligatorio.
Java
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori 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 Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
ID sessione log
L'esempio seguente mostra come registrare session ID
da una richiesta webhook.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Risoluzione dei problemi
Durante la risoluzione dei problemi relativi a un webhook,
è utile registrare l'ID sessione dal webhook.
Il campo sessionInfo.session
del
WebhookRequest
contiene l'ID sessione.
L'ID sessione deve essere univoco per ogni conversazione
e può aiutarti a confrontare i log degli agenti con i log webhook
per le richieste che usano lo stesso ID sessione.
Sezione ID sessione di log riportata sopra
mostra come registrare l'ID sessione da un webhook.
Inoltre, se ospiti il tuo webhook su
Cloud Functions
o su un'opzione serverless di Google Cloud simile,
puoi utilizzare il campo trace
delle
voci di log
come filtro dei 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 traccia per associare un determinato log degli errori dell'agente Dialogflow alle voci di log webhook di Cloud Functions corrispondenti. L'esempio utilizza 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
Usa 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"
}
Prendi nota del campo labels.session_id
,
che contiene l'ID sessione.
Userai l'ID sessione nel passaggio successivo.
2. Filtra i log della funzione Cloud Functions per l'ID sessione
Utilizza il seguente filtro di Cloud Logging per filtrare i log di Cloud Functions 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 generati durante la sessione indicata. 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
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 in base a 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 di 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 webhook associata all'ID sessione del passaggio 1 e alla traccia del passaggio 2.