Preview: API ยังอยู่ระหว่างเปิดใช้ รายละเอียดอาจเปลี่ยนก่อนเปิดจริง ดูความคืบหน้าที่ บันทึกการเปลี่ยนแปลง
Reply token
reply token คือรหัสที่มากับทุก event message (ในฟิลด์ reply_token) ใช้ตอบข้อความนั้นผ่าน API ได้ เหมาะเมื่อบอทต้องใช้เวลาคิดคำตอบนานกว่า 10 วินาที หรืออยากตอบหลายข้อความ
curl -s -X POST https://api.sukson.dev/v1/chats/0b6c3a52-5d0e-4c8e-9a51-6f1e7f6f2b10/messages \ -H "Authorization: Bearer $SUKSON_BOT_TOKEN" \ -H "Content-Type: application/json" \ -d '{"reply_token":"rt_q8Jf3vYb0kZ2mW9xT1sLr6PaN4cVe7Hd","messages":[{"type":"text","text":"พรุ่งนี้ฝนตก 70%"}]}'- ใช้ได้ครั้งเดียว ในคำขอนั้นส่งได้สูงสุด 5 ข้อความ ทุกข้อความเป็นการตอบกลับข้อความที่เรียกบอท
- อายุ 60 วินาที นับจากตอนที่ Sukson เตรียม event ถ้างานนานกว่านั้น ให้ส่งแบบ push (คือส่งโดยไม่ใส่
reply_token) - ใช้ได้เฉพาะห้องของ event นั้น
chat_idใน path ต้องเป็นห้องเดียวกับchat.idของ event ถ้าไม่ตรง คำขอจะถูกปฏิเสธ และ token ยังใช้ต่อได้ - ใช้ได้เฉพาะบอทที่ได้รับ event นั้น บอทตัวอื่นใช้ไม่ได้
- ใส่
reply_to_message_idคู่กับreply_tokenไม่ได้ เพราะ token บอกอยู่แล้วว่าตอบข้อความไหน - token นับว่าใช้ไปแล้ว แม้คำขอจะถูกปฏิเสธในขั้นต่อมา (เช่น ติด rate limit หรือมีคำต้องห้าม) แต่การตรวจรูปแบบข้อความ (ว่าง หรือยาวเกิน) ทำก่อนใช้ token ถ้าติดตรงนั้น token ยังใช้ต่อได้
ถ้า token ไม่ถูกต้อง ใช้ไปแล้ว หมดอายุ หรือเป็นของบอทอื่น จะได้คำตอบเดียวกันคือ 400 REPLY_TOKEN_INVALID ระบบไม่บอกว่าเป็นกรณีไหน
Reply token, push และ {"reply"}
หัวข้อที่มีชื่อว่า “Reply token, push และ {"reply"}”| วิธี | ใช้เมื่อ | นับโควตา |
|---|---|---|
{"reply": "..."} ในคำตอบ webhook |
ตอบได้ภายใน 10 วินาที ข้อความเดียว | นับ |
reply_token |
ต้องใช้เวลาคิดนานขึ้น (ไม่เกิน 60 วินาที) หรือส่งหลายข้อความ | นับทุกข้อความ |
push (ไม่ใส่ reply_token) |
ส่งเมื่อไรก็ได้ในห้องที่บอทอยู่ เช่น แจ้งเตือนตามเวลา | นับทุกข้อความ |
ทั้งสามแบบนับเข้าโควตาข้อความรายเดือน และอยู่ใต้ ขีดจำกัดต่อห้อง เดียวกัน