Dieser Leitfaden enthält verschiedene Beispiele für die Implementierung von Webhooks sowie Empfehlungen zur Fehlerbehebung bei Webhooks.
Sitzungsparameter festlegen
In den folgenden Beispielen wird gezeigt, wie ein Sitzungsparameter festgelegt wird.
Go
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Kurzanleitung für WebhooksJava
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Auftragsausführungsantwort zurückgeben
Die folgenden Beispiele zeigen, wie eine Ausführungsantwort zurückgegeben wird.
Go
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Kurzanleitung für WebhooksJava
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Legen Sie nach Bedarf die Formularparameter fest.
In den folgenden Beispielen wird gezeigt, wie ein Parameter als erforderlich gekennzeichnet wird.
Java
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Formularparameter validieren
In den folgenden Beispielen wird gezeigt, wie ein Formularparameter validiert wird.
Java
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Sitzungs-ID protokollieren
Im folgenden Beispiel wird gezeigt, wie die session ID
aus einer Webhook-Anfrage protokolliert wird.
Python
Richten Sie zur Authentifizierung bei Dialogflow die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Fehlerbehebung
Bei der Fehlerbehebung für einen Webhook ist es hilfreich, die Sitzungs-ID aus Ihrem Webhook zu protokollieren.
Das Feld sessionInfo.session
der WebhookRequest enthält die Sitzungs-ID.
Die Sitzungs-ID sollte für jede Unterhaltung eindeutig sein. Sie kann Ihnen helfen, Kundenservicemitarbeiter-Logs mit Webhook-Logs für Anfragen mit derselben Sitzungs-ID zu vergleichen.
Im Abschnitt Sitzungs-ID protokollieren oben wird beschrieben, wie Sie die Sitzungs-ID über einen Webhook protokollieren.
Wenn Sie Ihren Webhook in Cloud Functions oder einer ähnlichen serverlosen Google Cloud-Option hosten, können Sie das Feld trace
aus Logeinträgen als Logfilter verwenden.
Eine einzelne Ausführung einer Funktion führt zu mehreren Logeinträgen mit demselben Trace-Wert.
Im folgenden Beispiel werden sowohl die Sitzungs-ID als auch der Trace-Wert verwendet, um ein bestimmtes Conversational Agents-Fehlerprotokoll (Dialogflow CX) mit den entsprechenden Cloud Functions-Webhook-Logeinträgen zu verknüpfen. Im Beispiel werden Cloud Logging-Filter für einen Agenten verwendet, für den Cloud Logging aktiviert ist.
1. Logs von Conversational Agents (Dialogflow CX) nach den Fehlerprotokollen eines bestimmten Agents filtern
Verwenden Sie den folgenden Cloud Logging-Filter, um Ihre Konversations-Agent-Logs (Dialogflow CX) nach den Fehlerprotokollen eines bestimmten Agents zu filtern:
labels.location_id="global"
labels.agent_id="AGENT_ID"
severity=ERROR
Ein Webhook-Logfehlereintrag sieht so aus:
{
"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"
}
Beachten Sie das Feld labels.session_id
, das die Sitzungs-ID enthält.
Sie benötigen die Sitzungs-ID für den nächsten Schritt.
2. Cloud Functions-Logs nach Sitzungs-ID filtern
Verwenden Sie den folgenden Cloud Logging-Filter, um Ihre Cloud Function-Logs nach der Sitzungs-ID zu filtern:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
textPayload="Debug Node: session ID = SESSION_ID"
Die resultierenden Logs entsprechen den Webhook-Logs, die während der angegebenen Sitzung erstellt wurden. Beispiel:
{
"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"
}
Notieren Sie sich das Feld trace
, das im nächsten Schritt verwendet wird.
3. Cloud Functions-Logs nach einem bestimmten Trace filtern
Verwenden Sie den folgenden Cloud Logging-Filter, um Cloud Function-Logs nach einer bestimmten Spur zu filtern:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
trace="projects/PROJECT_ID/traces/TRACE_ID"
Dabei ist TRACE_ID
das letzte Segment des Segments. Die TRACE_ID
für projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e
ist beispielsweise e41eefc1fac48665b442bfa400cc2f5e
.
Die resultierenden Protokolle entsprechen allen Webhook-Protokollen, die während der Ausführung der Webhook-Anfrage generiert wurden und mit der Sitzungs-ID aus Schritt 1 und dem Trace aus Schritt 2 verknüpft sind.