Messaging API

ส่งข้อความเข้า HeloSChat ได้ 4 แบบ เลือกตามว่ารู้ผู้รับจากไหน และต้องการส่งถึงกี่คน

แบบใช้เมื่อนับโควตา
replyตอบ event ที่เพิ่งได้รับ ด้วย reply tokenไม่นับ
pushส่งหาผู้ใช้ กลุ่ม หรือห้องเดียว เมื่อไหร่ก็ได้1 ต่อครั้ง
multicastส่งข้อความเดียวกันหาผู้ใช้หลายคน (สูงสุด 500 UID)1 ต่อผู้รับ
broadcastประกาศถึงทุกคนที่เพิ่มบอทเป็นเพื่อน1 ต่อผู้รับ

Reply

POST/v1/messages/reply

ทุก event ที่ส่งถึงบอทในห้องแชทมี reply_token ใช้ได้ครั้งเดียว และควรตอบภายใน 1 นาที ส่งได้สูงสุด 5 ข้อความต่อครั้ง

cURL
curl -X POST "https://bots.gugarhices.com/v1/messages/reply" \
  -H "Authorization: Bearer $BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "replyToken": "rt_…",
    "messages": [{ "type": "text", "text": "รับทราบครับ" }]
  }'

Push

POST/v1/messages/push

ระบุผู้รับใน to โดย type เป็น user (UID), group, server หรือ channel ส่งเข้ากลุ่มหรือเซิร์ฟเวอร์ได้เมื่อบอทได้รับสิทธิ์นั้นแล้ว

cURL
curl -X POST "https://bots.gugarhices.com/v1/messages/push" \
  -H "Authorization: Bearer $BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042-shipped" \
  -d '{
    "to": { "type": "user", "id": "U12AB34CD" },
    "messages": [{ "type": "text", "text": "คำสั่งซื้อ #1042 จัดส่งแล้ว" }]
  }'
ใส่ header Idempotency-Key เมื่อต้องลองส่งซ้ำ ระบบจะตอบผลเดิมแทนการส่งข้อความซ้ำถึงผู้ใช้

Multicast และ Broadcast

POST/v1/messages/multicast POST/v1/messages/broadcast

multicast รับ to เป็นรายการ UID ถ้ามีไม่เกิน 20 คนจะส่งทันที ถ้ามากกว่านั้นหรือเป็น broadcast ระบบจะสร้างงานส่งในเบื้องหลัง แล้วตอบ 202 พร้อม job_id ให้ติดตามที่ GET /v1/messages/jobs/{id}

Response 202
{
  "job_id": "5d1f…",
  "kind": "broadcast",
  "status": "queued",
  "total": 1280,
  "sent": 0,
  "failed": 0
}

ประเภทข้อความ

typeคำอธิบายตัวอย่าง
textข้อความตัวอักษร สูงสุด 4,000 ตัวอักษร{ "type": "text", "text": "สวัสดี" }
imageรูปภาพจาก URL{ "type": "image", "originalContentUrl": "https://…/a.jpg", "previewImageUrl": "https://…/a_s.jpg" }
videoวิดีโอจาก URL{ "type": "video", "originalContentUrl": "https://…/a.mp4", "previewImageUrl": "https://…/a.jpg" }
audioไฟล์เสียงจาก URL{ "type": "audio", "originalContentUrl": "https://…/a.m4a" }
fileไฟล์แนบ{ "type": "file", "originalContentUrl": "https://…/a.pdf", "fileName": "a.pdf" }
stickerสติกเกอร์{ "type": "sticker", "packageId": "1", "stickerId": "2" }
locationตำแหน่ง{ "type": "location", "title": "ร้าน", "address": "…", "latitude": 13.75, "longitude": 100.5 }
cardService Card (ต้องมีสิทธิ์ cards.create){ "type": "card", "card": { "type": "event", "title": "ประชุม" } }
flexเลย์เอาต์อิสระแบบ Flex{ "type": "flex", "flex": { … } }
embedลิงก์พร้อมตัวอย่าง{ "type": "embed", "embed": { "url": "https://…", "title": "…" } }

Service Card

การ์ดที่ผู้ใช้กดตอบได้ในแชท ได้แก่ event (นัดหมาย), poll (โหวต), task (งาน) และ help (ขอความช่วยเหลือ) เมื่อผู้ใช้กด บอทจะได้รับ event card.action ต้องได้รับอนุมัติสิทธิ์ cards.create ก่อน

โควตา

บอทใหม่ได้ 1,000 ข้อความต่อเดือน นับตามเวลาประเทศไทย เมื่อเกินโควตา API ตอบ 429 quota_exceeded ตรวจโควตาได้ที่ GET /v1/messages/quota และยอดใช้ที่ GET /v1/messages/quota/consumption หากต้องการโควตาเพิ่ม ติดต่อทีม HeloSChat ผ่านช่องทางที่ให้ไว้ในใบสมัคร

{ "type": "limited", "value": 1000, "month": "2026-10" }