ข้ามไปยังเนื้อหา
Preview: API ยังอยู่ระหว่างเปิดใช้ รายละเอียดอาจเปลี่ยนก่อนเปิดจริง ดูความคืบหน้าที่ บันทึกการเปลี่ยนแปลง

เริ่มต้นใช้งาน

ก่อนเริ่ม คุณต้องมีสองอย่าง: บัญชีสมาชิก Sukson และเซิร์ฟเวอร์ที่รับ HTTPS จากอินเทอร์เน็ตได้ (พอร์ต 443 หรือ 8443)

  1. สร้างบอท

    ไปที่ member.sukson.com/bots แล้วกดสร้างบอท ตั้งชื่อที่แสดง (ใช้ได้แค่ A–Z, a–z, 0–9) และตั้ง handle ซึ่งเป็นชื่อที่คนพิมพ์ตาม @ เพื่อเรียกบอท handle ต้องลงท้ายด้วย _bot และเปลี่ยนไม่ได้หลังสร้าง

  2. เก็บ API token

    API token คือรหัสที่บอทใช้ยืนยันตัวตนทุกครั้งที่เรียก API หลังสร้างบอท ระบบแสดง token ที่ขึ้นต้นด้วย skbot_ ให้ดู ครั้งเดียว คัดลอกไปเก็บในที่เก็บรหัสลับ (secret manager) หรือตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์ ถ้าทำหาย ให้ออก token ใหม่ในหน้าของบอท (การยืนยันตัวตน)

    ลองเรียก API ด้วย token นี้ ถ้าได้ข้อมูลบอทกลับมา แปลว่า token ใช้ได้

    Terminal window
    export SUKSON_BOT_TOKEN="skbot_..."
    curl -s https://api.sukson.dev/v1/me \
    -H "Authorization: Bearer $SUKSON_BOT_TOKEN"
  3. ตั้ง webhook

    webhook คือ URL บนเซิร์ฟเวอร์ของคุณที่ Sukson ส่งข้อความไปหา เตรียม URL นี้ให้ตรวจลายเซ็นได้ก่อน (ตัวอย่างโค้ด) แล้วตั้งค่าในหน้าของบอท หรือเรียก API:

    Terminal window
    curl -s -X PUT https://api.sukson.dev/v1/me/webhook \
    -H "Authorization: Bearer $SUKSON_BOT_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"url":"https://bot.example.com/sukson"}'

    ก่อนบันทึก Sukson จะส่ง event ping ไปทดสอบ โดยลงลายเซ็นด้วยรหัสลับใหม่ เซิร์ฟเวอร์ต้องตอบ 2xx ภายใน 10 วินาที URL จึงจะถูกบันทึก คำตอบของ API มี secret (รหัสลับ webhook) ซึ่ง แสดงครั้งเดียว เก็บไว้ใช้ตรวจลายเซ็น

  4. เพิ่มบอทเข้าห้อง

    เปิดหน้าข้อมูลห้องในแชท แล้วเพิ่มบอท ทำได้เฉพาะห้องที่คุณเป็นเจ้าของหรือแอดมิน (ห้องสาธารณะ กลุ่ม หรือช่อง) บอทตัวเดียวอยู่ได้หลายห้อง จำนวนห้องขึ้นกับแพ็กเกจของบอท ดูรายชื่อห้องได้ที่ GET /v1/me/chats

  5. ลองเรียกบอท

    พิมพ์ @handle สวัสดี ในห้อง เซิร์ฟเวอร์ของคุณจะได้รับ event message ตอบกลับได้ด้วย {"reply": "สวัสดีครับ"} หรือเรียก POST /v1/chats/{chat_id}/messages

  • อ่านหน้า Webhook ให้ครบก่อนเปิดใช้จริง โดยเฉพาะการตรวจลายเซ็น การกันประมวลผลซ้ำ และกติกาการส่งซ้ำ
  • ใช้ reply token เมื่อต้องการเวลาคิดคำตอบนานขึ้น (ไม่เกิน 60 วินาที)
  • ดู ขีดจำกัด และโควตาข้อความรายเดือนของแพ็กเกจ