Dieser Leitfaden enthält verschiedene Beispiele für die Implementierung von Webhooks sowie Empfehlungen zur Fehlerbehebung für Webhooks.
Sitzungsparameter festlegen
Die folgenden Beispiele zeigen, wie ein Sitzungsparameter festgelegt wird.
Go
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weitere Informationen finden Sie in der Kurzanleitung für WebhooksJava
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Antwort für die Auftragsausführung zurückgeben
Die folgenden Beispiele zeigen, wie eine Antwort für die Auftragsausführung zurückgegeben wird.
Go
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weitere Informationen finden Sie in der Kurzanleitung für WebhooksJava
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Formularparameter nach Bedarf festlegen
Die folgenden Beispiele zeigen, wie ein Parameter als erforderlich gekennzeichnet wird.
Java
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Formularparameter validieren
Die folgenden Beispiele zeigen, wie ein Formularparameter validiert wird.
Java
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Sitzungs-ID protokollieren
Das folgende Beispiel zeigt, wie session ID
protokolliert wird
aus einer Webhook-Anfrage.
Python
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Dialogflow zu authentifizieren. 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 dem Webhook zu protokollieren.
Das Feld sessionInfo.session
des
WebhookRequest
enthält die Sitzungs-ID.
Die Sitzungs-ID muss für jede Unterhaltung eindeutig sein.
Außerdem können Sie Agent-Logs mit Webhook-Logs vergleichen.
für Anfragen mit derselben Sitzungs-ID.
Im obigen Abschnitt Log session ID (Sitzungs-ID protokollieren)
zeigt, wie die Sitzungs-ID aus einem Webhook protokolliert wird.
Wenn Sie Ihren Webhook in einem
Cloud Functions
oder eine ähnliche
serverlose Google Cloud-Option,
können Sie das Feld trace
Logeinträge
als Logfilter verwenden.
Einmaliges Ausführen 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 Fehlerlog des Dialogflow-Agents mit dem entsprechenden Logeinträge für Cloud Functions-Webhooks. Im Beispiel werden Cloud Logging-Filter für einen Agent, der Cloud Logging:
1. Dialogflow-Logs nach Fehlerlogs eines bestimmten Agents filtern
Verwenden Sie folgenden Cloud Logging-Filter So filtern Sie die Dialogflow-Logs nach Fehlerlogs eines bestimmten Agents:
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
,
die die Sitzungs-ID enthält.
Die Sitzungs-ID verwenden Sie im nächsten Schritt.
2. Cloud Functions-Logs nach Sitzungs-ID filtern
Verwenden Sie folgenden Cloud Logging-Filter um 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 Webhook-Logs, die während der angegebenen session (Sitzung) 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"
}
Beachten Sie das Feld trace
, das im nächsten Schritt verwendet wird.
3. Cloud Functions-Logs nach einem bestimmten Trace filtern
Verwenden Sie folgenden Cloud Logging-Filter um Cloud Function-Logs nach einem bestimmten Trace 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 Trace-Segment. Beispiel: TRACE_ID
für projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e
ist
e41eefc1fac48665b442bfa400cc2f5e
Die resultierenden Logs entsprechen Alle Webhook-Logs, die während der Ausführung der Webhook-Anfrage generiert wurden die mit der Sitzungs-ID aus Schritt 1 verknüpft ist, und mit dem Trace aus Schritt 2.