Questa guida fornisce vari esempi per l'implementazione dei webhook, nonché consigli per la risoluzione dei problemi relativi ai webhook.
Impostare un parametro di sessione
Gli esempi riportati di seguito mostrano come impostare un parametro di sessione.
Go
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Consulta la guida rapida agli webhook.Java
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Restituire una risposta di evasione
Gli esempi riportati di seguito mostrano come restituire una risposta di adempimento.
Go
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Consulta la guida rapida agli webhook.Java
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Convalidare un parametro del modulo
Gli esempi riportati di seguito mostrano come convalidare un parametro del modulo.
Java
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
ID sessione log
L'esempio seguente mostra come registrare il session ID
da una richiesta webhook.
Python
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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
di
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 utilizzano lo stesso ID sessione.
La sezione Registrare l'ID sessione sopra riportata illustra 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 di agenti Conversational Agents (Dialogflow CX) alle voci di log degli webhook di Cloud Functions corrispondenti. L'esempio utilizza Filtri di Cloud Logging per un agente che ha attivato Cloud Logging.
1. Filtrare i log di Conversational Agents (Dialogflow CX) per i log degli errori di un determinato agente
Utilizza il seguente filtro di logging di Cloud per filtrare i log di Conversational Agents (Dialogflow CX) in base ai log di errore di un determinato agente:
labels.location_id="global"
labels.agent_id="AGENT_ID"
severity=ERROR
Una voce di errore del log webhook è simile alla seguente:
{
"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.
Utilizzerai l'ID sessione nel passaggio successivo.
2. Filtra i log di Cloud Functions per l'ID sessione
Utilizza il seguente filtro di Cloud Logging per filtrare i log di 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 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
che viene utilizzato nel passaggio successivo.
3. Filtrare i log di Cloud Functions per una determinata traccia
Utilizza il seguente filtro Cloud Logging per filtrare i log di Cloud Function per una determinata traccia:
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 tratto della traccia. Ad esempio, il 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.