Dieser Leitfaden enthält verschiedene Beispiele für die Implementierung von Webhooks sowie Empfehlungen zur Fehlerbehebung bei Webhooks.
Sitzungsparameter festlegen
Die folgenden Beispiele zeigen, wie Sie einen Sitzungsparameter festlegen.
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 unter Kurzanleitung für Webhooks.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.
Auftragsausführungsantwort zurückgeben
Die folgenden Beispiele zeigen, wie eine Auftragsausführungsantwort 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 unter Kurzanleitung für Webhooks.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.
Legen Sie die erforderlichen Formularparameter fest.
Die folgenden Beispiele zeigen, wie ein Parameter bei Bedarf 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.
Logsitzungs-ID
Das folgende Beispiel zeigt, wie session ID
aus einer Webhook-Anfrage protokolliert wird.
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 eines Webhooks ist es hilfreich, die Sitzungs-ID aus dem Webhook zu protokollieren.
Das Feld sessionInfo.session
der WebhookRequest enthält die Sitzungs-ID.
Die Sitzungs-ID sollte für jede Unterhaltung eindeutig sein und kann Ihnen helfen, Agent-Logs mit Webhook-Logs für Anfragen mit derselben Sitzungs-ID zu vergleichen.
Der obige Abschnitt Logsitzungs-ID zeigt, wie die Sitzungs-ID von einem Webhook protokolliert wird.
Wenn Sie den Webhook in Cloud Functions oder einer ähnlichen serverlosen Option von Google Cloud hosten, können Sie das Feld trace
aus Logeinträgen als Logfilter verwenden.
Wenn eine Funktion einmal ausgeführt wird, führt dies 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 den entsprechenden Logeinträgen des Cloud Functions-Webhooks zu verknüpfen. In diesem Beispiel werden Cloud Logging-Filter für einen Agent verwendet, der Cloud Logging aktiviert hat.
1. Dialogflow-Logs nach Fehlerlogs eines bestimmten Agents filtern
Verwenden Sie den folgenden Cloud Logging-Filter, um Ihre Dialogflow-Logs nach den Fehlerlogs 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 verwenden die Sitzungs-ID im nächsten Schritt.
2. Cloud Functions-Logs nach Sitzungs-ID filtern
Verwenden Sie den folgenden Cloud Logging-Filter, um die Logs der Cloud Functions-Funktion 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"
}
Beachten Sie 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 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 allen Webhook-Logs, die während der Ausführung der Webhook-Anfrage generiert wurden, die mit der Sitzungs-ID aus Schritt 1 und dem Trace aus Schritt 2 verknüpft ist.