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 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.
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 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.
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
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 für einen Webhook 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 hilft Ihnen beim Vergleich von Agent-Logs mit Webhook-Logs für Anfragen mit derselben Sitzungs-ID.
Der Abschnitt Sitzungs-ID protokollieren oben 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 außerdem das Feld trace
aus Logeinträgen als Logfilter verwenden.
Das einmalige 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 den entsprechenden Logeinträgen des Cloud Functions-Webhooks zuzuordnen. In diesem Beispiel werden Cloud Logging-Filter für einen Agent verwendet, für den Cloud Logging aktiviert ist.
1. Dialogflow-Logs nach Fehlerlogs eines bestimmten Agents filtern
Verwenden Sie den folgenden Cloud Logging-Filter, um Ihre Dialogflow-Logs nach 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.
Die Sitzungs-ID verwenden Sie im nächsten Schritt.
2. Cloud Functions-Logs nach Sitzungs-ID filtern
Verwenden Sie den 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 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 für einen 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. TRACE_ID
für projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e
ist beispielsweise e41eefc1fac48665b442bfa400cc2f5e
.
Die resultierenden Logs entsprechen allen Webhook-Logs, die während der Ausführung der Webhook-Anfrage generiert wurden, die der Sitzungs-ID aus Schritt 1 und dem Trace aus Schritt 2 zugeordnet ist.