บริการตรวจสอบ Webhook
รองรับให้นักพัฒนาตรวจสอบความพร้อมใช้งานของบริการ webhook ของ GPTBots และตรวจสอบความพร้อมใช้งานของ webhook URL ที่ Agent เป้าหมายตั้งค่าไว้
ตรวจสอบความพร้อมใช้งานของบริการ webhook ที่ Agent ตั้งค่าไว้
GPTBots รองรับให้นักพัฒนาตรวจสอบความพร้อมใช้งานของ Webhook URL ทั้งหมดที่ Agent เป้าหมายตั้งค่าไว้ผ่าน API ซึ่งรวมถึงความพร้อมใช้งานของ webhook url ที่ตั้งค่าไว้สำหรับ «ส่งข้อความ» และ «บริการเจ้าหน้าที่-webhook» เมื่อนักพัฒนาเรียกใช้อินเทอร์เฟซนี้ GPTBots จะตรวจสอบ Webhook URL ทั้งหมดที่ Agent ของ API Key ปัจจุบันตั้งค่าไว้โดยอัตโนมัติ โดยไม่ต้องระบุเป้าหมายในการตรวจสอบเพิ่มเติม และจะคืนผลการตรวจสอบของแต่ละ Webhook ทีละรายการในการตอบกลับ
บริการ Webhook ทั้งหมดของนักพัฒนาที่เกี่ยวข้องกับฟิลด์ istest มีดังนี้:
- เนื้อหาคำขอที่ส่งข้อความตอบกลับไปยัง webhook ของ ส่งข้อความ API มีฟิลด์นี้รวมอยู่ด้วย ดูรายละเอียด
- เนื้อหาคำขอที่รับการแจ้งเตือนคำขอบทสนทนาบริการเจ้าหน้าที่และข้อความของผู้ใช้มีฟิลด์นี้รวมอยู่ด้วย ดูรายละเอียด
เมื่อบริการ Webhook ของนักพัฒนาได้รับคำขอ ควรระบุฟิลด์
istestในเนื้อหาข้อความ: เมื่อistest=trueเป็นคำขอทดสอบความพร้อมใช้งาน ไม่ควรนำมาประมวลผลเป็นข้อความธุรกิจจริง (เช่น ไม่บันทึกลงฐานข้อมูล ไม่ทริกเกอร์บริการเจ้าหน้าที่ ฯลฯ) และการคืน HTTP status code200ถือว่า Webhook นั้นพร้อมใช้งาน
วิธีการร้องขอ
POST
URL สำหรับร้องขอ
https://api-${endpoint}.gptbots.ai/v1/webhook/check
การยืนยันตัวตนสำหรับร้องขอ
ดูรายละเอียดได้ที่คำอธิบายวิธีการยืนยันตัวตนใน API Overview อินเทอร์เฟซนี้ใช้ API Key เพื่อระบุ Agent เป้าหมาย และตรวจสอบ Webhook ที่ตั้งค่าไว้ภายใต้ Agent นั้น
การร้องขอ
ตัวอย่างการร้องขอ
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json'
Request Headers
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| Authorization | Bearer ${API Key} | ใช้ Authorization: Bearer ${API Key} เพื่อยืนยันตัวตนในการเรียกใช้ โปรดรับคีย์จากหน้า API Key เพื่อใช้เป็น API Key |
| Content-Type | application/json | ประเภทข้อมูล ต้องเป็น application/json |
พารามิเตอร์การร้องขอ
อินเทอร์เฟซนี้ไม่ต้องส่งพารามิเตอร์การร้องขอ GPTBots จะตรวจสอบ Webhook URL ทั้งหมดที่ Agent ของ API Key ปัจจุบันตั้งค่าไว้โดยอัตโนมัติ
การตอบกลับ
ตัวอย่างการตอบกลับ
{
"results": [
{
"type": "message",
"component_id": null,
"component_name": null,
"webhook_url": "https://your_domain/webhook/message",
"reachable": true,
"http_status": 200,
"latency_ms": 156
},
{
"type": "human_service",
"component_id": "665d88b03ce2b13cf2d57346",
"component_name": "人工服务-售前",
"webhook_url": "https://your_domain/presale/human/service/conversation/establish",
"reachable": true,
"http_status": 200,
"latency_ms": 188
},
{
"type": "human_service",
"component_id": "665d88b03ce2b13cf2d57347",
"component_name": "人工服务-售后",
"webhook_url": "https://your_domain/aftersale/human/service/conversation/establish",
"reachable": false,
"http_status": 502,
"latency_ms": 3000
}
]
}
การตอบกลับเมื่อสำเร็จ
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| results | JSON Array | รายการผลการตรวจสอบ คืนผลการตรวจสอบของแต่ละ Webhook ที่ Agent นั้นตั้งค่าไว้ทีละรายการ Webhook ที่ไม่ได้ตั้งค่าจะไม่ปรากฏในรายการ เมื่อ Agent เดียวกันตั้งค่าคอมโพเนนต์บริการเจ้าหน้าที่ (handoff) หลายตัว แต่ละคอมโพเนนต์จะมีผลลัพธ์ human_service หนึ่งรายการ |
| type | string | ประเภทของ Webhook message: Webhook ที่รับข้อความตอบกลับของ Agent human_service: Webhook ที่ตั้งค่าในโหมด webhook ของคอมโพเนนต์บริการเจ้าหน้าที่ |
| component_id | string | ID เฉพาะของคอมโพเนนต์บริการเจ้าหน้าที่ (handoff) ใช้แยกแยะกรณีที่ตั้งค่าคอมโพเนนต์บริการเจ้าหน้าที่หลายตัว เมื่อเป็นประเภท message จะเป็น null |
| component_name | string | ชื่อของคอมโพเนนต์บริการเจ้าหน้าที่ (handoff) เมื่อเป็นประเภท message จะเป็น null |
| webhook_url | string | Webhook URL ที่ถูกตรวจสอบ |
| reachable | boolean | Webhook นี้พร้อมใช้งานหรือไม่ true หมายถึงพร้อมใช้งาน false หมายถึงไม่พร้อมใช้งาน |
| http_status | int | HTTP status code ที่คำขอตรวจสอบคืนกลับมา เมื่อเชื่อมต่อล้มเหลวหรือหมดเวลาจะเป็น null หรือ 0 |
| latency_ms | long | เวลาที่ใช้ของคำขอตรวจสอบ (มิลลิวินาที) |
คำแนะนำในการตัดสินความพร้อมใช้งาน
GPTBots ส่งคำขอตรวจสอบที่มี istest=true ไปยัง Webhook URL ตามรูปแบบข้อความมาตรฐาน และตัดสินความพร้อมใช้งานจากผลที่คืนกลับมา:
| สถานการณ์ | การตัดสิน |
|---|---|
คืน HTTP status code 200 |
Webhook นี้พร้อมใช้งาน (reachable=true) |
คืนค่าที่ไม่ใช่ 200 (เช่น 4xx/5xx) / คำขอหมดเวลา / เชื่อมต่อล้มเหลว |
Webhook นี้ไม่พร้อมใช้งาน (reachable=false) |
การตอบกลับเมื่อผิดพลาด
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| code | int | รหัสข้อผิดพลาด |
| message | string | รายละเอียดข้อผิดพลาด |
รหัสข้อผิดพลาด
| Code | Message |
|---|---|
| 40000 | พารามิเตอร์ผิดพลาด |
| 40127 | การยืนยันตัวตนนักพัฒนาไม่สำเร็จ |
| 40378 | Agent ถูกลบ |
| 40379 |
การตรวจสอบสถานะบริการ Webhook ของ GPTBots
GPTBots มีอินเทอร์เฟซตรวจสอบความสมบูรณ์ (health) สำหรับตรวจสอบบริการ webhook นักพัฒนาสามารถเรียกใช้อินเทอร์เฟซนี้เพื่อตรวจสอบว่าบริการ webhook ของ GPTBots ทำงานปกติพร้อมใช้งานหรือไม่ หากอินเทอร์เฟซคืน HTTP status code 200 และเนื้อหาการตอบกลับเป็นข้อความภาษาอังกฤษที่แสดงว่าบริการปกติ (เช่น service is normal) ถือว่าบริการ webhook ของ GPTBots ทำงานปกติพร้อมใช้งาน อินเทอร์เฟซนี้ไม่ต้องยืนยันตัวตนและคืนค่าเป็นข้อความธรรมดา
วิธีการร้องขอ
GET
URL สำหรับร้องขอ
https://api.gptbots.ai/v1/webhook/service/health
ตัวอย่างการร้องขอ
curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'
การตอบกลับ
เมื่อบริการ GPTBots ทำงานปกติพร้อมใช้งาน จะคืน HTTP status code 200 และเนื้อหาการตอบกลับจะเป็นข้อความภาษาอังกฤษที่แสดงว่าบริการปกติ
service is normal
คำแนะนำในการตัดสินความพร้อมใช้งาน
ผู้เรียกใช้เพียงใช้ HTTP status code เป็นเกณฑ์ในการตัดสิน:
| สถานการณ์ | การตัดสิน |
|---|---|
คืน 200 และเนื้อหาการตอบกลับเป็น service is normal |
บริการ GPTBots ทำงานปกติพร้อมใช้งาน |
คืนค่าที่ไม่ใช่ 200 (เช่น 5xx) / คำขอหมดเวลา / เชื่อมต่อล้มเหลว |
บริการ GPTBots ไม่พร้อมใช้งาน |
แนะนำให้ตั้งค่าการหมดเวลาของคำขอที่เหมาะสม (เช่น 3~5 วินาที) และตรวจสอบแบบ polling ด้วยความถี่คงที่ (QPM:3) อินเทอร์เฟซนี้ไม่ต้องยืนยันตัวตน จึงไม่ต้องแนบ API Key ในการเรียกใช้
