บริการตรวจสอบ Webhook

บริการตรวจสอบ 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 code 200 ถือว่า 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'
                      
                      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": [
    {
      "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'
                      
                      curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'

                    
บล็อกโค้ดนี้ในหน้าต่างลอย

การตอบกลับ

เมื่อบริการ GPTBots ทำงานปกติพร้อมใช้งาน จะคืน HTTP status code 200 และเนื้อหาการตอบกลับจะเป็นข้อความภาษาอังกฤษที่แสดงว่าบริการปกติ

service is normal
                      
                      service is normal

                    
บล็อกโค้ดนี้ในหน้าต่างลอย

คำแนะนำในการตัดสินความพร้อมใช้งาน

ผู้เรียกใช้เพียงใช้ HTTP status code เป็นเกณฑ์ในการตัดสิน:

สถานการณ์ การตัดสิน
คืน 200 และเนื้อหาการตอบกลับเป็น service is normal บริการ GPTBots ทำงานปกติพร้อมใช้งาน
คืนค่าที่ไม่ใช่ 200 (เช่น 5xx) / คำขอหมดเวลา / เชื่อมต่อล้มเหลว บริการ GPTBots ไม่พร้อมใช้งาน

แนะนำให้ตั้งค่าการหมดเวลาของคำขอที่เหมาะสม (เช่น 3~5 วินาที) และตรวจสอบแบบ polling ด้วยความถี่คงที่ (QPM:3) อินเทอร์เฟซนี้ไม่ต้องยืนยันตัวตน จึงไม่ต้องแนบ API Key ในการเรียกใช้