Ce guide fournit différents exemples d'implémentation webhooks ainsi que des recommandations de dépannage pour les webhooks.
Définir un paramètre de session
Les exemples suivants montrent comment définir un paramètre de session.
Go
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Consultez le guide de démarrage rapide des webhooks.Java
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Renvoyer une réponse de traitement
Les exemples suivants montrent comment renvoyer une réponse de traitement.
Go
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Consultez le Guide de démarrage rapide des webhooksJava
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Définissez les paramètres du formulaire si nécessaire
Les exemples suivants montrent comment signaler un paramètre si nécessaire.
Java
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Valider un paramètre de formulaire
Les exemples suivants montrent comment valider un paramètre de formulaire.
Java
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
ID de session de journalisation
L'exemple suivant montre comment consigner le session ID
à partir d'une requête webhook.
Python
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Dépannage
Lorsque vous dépannez un webhook,
il peut être utile de consigner
l'ID de session de votre webhook.
Le champ sessionInfo.session
de WebhookRequest contient l'ID de session.
L'ID de session doit être unique
pour chaque conversation,
et peut vous aider à comparer les journaux de l'agent aux journaux des webhooks.
pour les requêtes utilisant le même ID de session.
La section ID de session du journal ci-dessus
montre comment consigner l'ID de session à partir d'un webhook.
De plus, si vous hébergez votre webhook
Cloud Functions
ou une solution sans serveur Google Cloud similaire,
vous pouvez utiliser le champ trace
de
entrées de journal
comme filtre de journal.
Une seule exécution d'une fonction génère plusieurs entrées de journal avec la même valeur de trace.
L'exemple ci-dessous utilise à la fois l'ID de session et la valeur de trace pour associer un journal d'erreur d'agent Conversational Agents (Dialogflow CX) particulier aux entrées de journal du webhook Cloud Functions correspondantes. Cet exemple utilise Filtres Cloud Logging pour un agent qui a activé Cloud Logging :
1. Filtrer les journaux des agents conversationnels (Dialogflow CX) pour les journaux d'erreurs d'un agent spécifique
Utilisez le filtre Cloud Logging suivant pour filtrer les journaux de vos agents conversationnels (Dialogflow CX) en fonction des journaux d'erreurs d'un agent particulier :
labels.location_id="global"
labels.agent_id="AGENT_ID"
severity=ERROR
Une entrée d'erreur de journal de webhook ressemble à ceci :
{
"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"
}
Notez le champ labels.session_id
, qui contient l'ID de session.
Vous utiliserez l'ID de session à l'étape suivante.
2. Filtrer les journaux de la fonction Cloud par ID de session
Utilisez le filtre Cloud Logging suivant pour filtrer les journaux de votre fonction Cloud par ID de session:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
textPayload="Debug Node: session ID = SESSION_ID"
Les journaux générés correspondent aux journaux de webhook créés au cours de la session fournie. Exemple :
{
"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"
}
Notez le champ trace
, qui sera utilisé à l'étape suivante.
3. Filtrer les journaux Cloud Functions pour une trace spécifique
Utilisez le filtre Cloud Logging suivant pour filtrer les journaux de la fonction Cloud pour une trace particulière:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
trace="projects/PROJECT_ID/traces/TRACE_ID"
où TRACE_ID
est le dernier segment de la trace. Par exemple, TRACE_ID
pour projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e
est e41eefc1fac48665b442bfa400cc2f5e
.
Les journaux générés correspondent à tous les journaux webhook générés lors de l'exécution de la requête webhook associée à l'ID de session de l'étape 1 et à la trace de l'étape 2.