Panduan ini memberikan berbagai contoh untuk menerapkan webhook serta rekomendasi pemecahan masalah webhook.
Menetapkan parameter sesi
Contoh berikut menunjukkan cara menetapkan parameter sesi.
Go
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Mulai cepat Webhook.Java
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menampilkan respons fulfillment
Contoh berikut menunjukkan cara menampilkan respons fulfillment.
Go
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Mulai cepat Webhook.Java
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menetapkan parameter formulir sesuai kebutuhan
Contoh berikut menunjukkan cara menandai parameter sesuai kebutuhan.
Java
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Memvalidasi parameter formulir
Contoh berikut menunjukkan cara memvalidasi parameter formulir.
Java
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
ID sesi log
Contoh berikut menunjukkan cara mencatat session ID
ke dalam log
dari permintaan webhook.
Python
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Pemecahan masalah
Saat memecahkan masalah webhook, sebaiknya catat ID sesi dari webhook Anda ke dalam log.
Kolom sessionInfo.session
dari
WebhookRequest
berisi ID sesi.
ID sesi harus unik untuk setiap percakapan,
dan dapat membantu Anda membandingkan log agen dengan log webhook
untuk permintaan yang menggunakan ID sesi yang sama.
Bagian Mencatat ID sesi ke dalam log di atas
menunjukkan cara mencatat ID sesi ke dalam log dari webhook.
Selain itu, jika Anda menghosting webhook di Cloud Functions atau opsi serverless Google Cloud serupa, Anda dapat menggunakan kolom trace
dari entri log sebagai filter log.
Satu eksekusi fungsi menghasilkan beberapa entri log
dengan nilai rekaman aktivitas yang sama.
Contoh di bawah menggunakan ID sesi dan nilai rekaman aktivitas untuk mengaitkan log error agen Agen Percakapan (Dialogflow CX) tertentu dengan entri log webhook Cloud Functions yang sesuai. Contoh ini menggunakan Filter Cloud Logging untuk agen yang telah mengaktifkan Cloud Logging.
1. Memfilter log Agen Percakapan (Dialogflow CX) untuk log error agen tertentu
Gunakan filter Cloud Logging berikut untuk memfilter log Agen Percakapan (Dialogflow CX) Anda untuk log error agen tertentu:
labels.location_id="global"
labels.agent_id="AGENT_ID"
severity=ERROR
Entri error log webhook terlihat seperti berikut:
{
"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"
}
Perhatikan kolom labels.session_id
,
yang berisi ID sesi.
Anda akan menggunakan ID sesi di langkah berikutnya.
2. Memfilter log Cloud Function untuk ID sesi
Gunakan filter Cloud Logging berikut untuk memfilter log Cloud Function Anda untuk ID sesi:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
textPayload="Debug Node: session ID = SESSION_ID"
Log yang dihasilkan sesuai dengan log webhook yang dibuat selama sesi yang disediakan. Contoh:
{
"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"
}
Perhatikan kolom trace
yang digunakan di langkah berikutnya.
3. Memfilter log Cloud Functions untuk pelacakan tertentu
Gunakan filter Cloud Logging berikut untuk memfilter log Cloud Functions untuk rekaman aktivitas tertentu:
resource.type = "cloud_function"
resource.labels.function_name = "CLOUD_FUNCTION_NAME"
resource.labels.region = "CLOUD_FUNCTION_REGION"
trace="projects/PROJECT_ID/traces/TRACE_ID"
dengan TRACE_ID
adalah segmen terakhir rekaman aktivitas. Misalnya, TRACE_ID
untuk projects/PROJECT_ID/traces/e41eefc1fac48665b442bfa400cc2f5e
adalah
e41eefc1fac48665b442bfa400cc2f5e
.
Log yang dihasilkan sesuai dengan semua log webhook yang dihasilkan selama eksekusi permintaan webhook yang dikaitkan dengan ID sesi dari langkah 1 dan dengan rekaman aktivitas dari langkah 2.