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

ทำตาม 5 ขั้นนี้ จะได้บอทที่รับข้อความและตอบกลับในแอป HeloSChat ได้จริง ใช้เวลาประมาณ 15 นาที

สิ่งที่ต้องมี: บัญชี HeloSChat สำหรับทดสอบ และเซิร์ฟเวอร์ที่รับ HTTPS ได้ (ระหว่างพัฒนาใช้ tunnel เช่น Cloudflare Tunnel หรือ ngrok ได้)

1. เข้าสู่ระบบและยื่นใบสมัคร

เข้าสู่ระบบ ด้วย UID ของบัญชี HeloSChat แล้วกรอกรหัส 6 หลักที่ส่งไป HeloSMail (หรือกดยืนยันในแอป) ไม่ต้องสร้างบัญชีใหม่ จากนั้นยื่นใบสมัคร Developer ใน Console ระบุว่าบอทจะทำอะไร ใครใช้ และจัดการข้อมูลอย่างไร เมื่อทีม HeloSChat อนุมัติแล้วจะสร้างบอทได้ทันที

2. สร้างบอทและเก็บ token

ใน Console กด สร้างบอท ระบบจะแสดง Bot token เพียงครั้งเดียว และแสดง Webhook secret ในหน้าบอท เก็บทั้งสองค่าเป็นตัวแปรสภาพแวดล้อม

.env
BOT_TOKEN=hb_xxxxxxxxxxxxxxxx
WEBHOOK_SECRET=xxxxxxxxxxxxxxxxxxxxxxxx

3. เขียนเซิร์ฟเวอร์รับ Webhook

เซิร์ฟเวอร์ต้องตรวจลายเซ็น X-Helos-Bot-Signature ตอบ 200 ให้เร็ว แล้วจึงประมวลผล ตัวอย่างนี้ตอบกลับทุกข้อความที่ได้รับ

// npm install express
import crypto from "node:crypto";
import express from "express";

const app = express();
app.use(express.raw({ type: "application/json" }));

function verified(req) {
  const expected = "sha256=" + crypto
    .createHmac("sha256", process.env.WEBHOOK_SECRET)
    .update(req.body).digest("hex");
  const got = req.get("X-Helos-Bot-Signature") || "";
  return got.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(got), Buffer.from(expected));
}

app.post("/webhook", async (req, res) => {
  if (!verified(req)) return res.sendStatus(401);
  res.sendStatus(200); // ตอบ 2xx ก่อน แล้วค่อยทำงาน

  const { event } = JSON.parse(req.body);
  if (event.type !== "message.create" || !event.reply_token) return;

  await fetch("https://bots.gugarhices.com/v1/messages/reply", {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + process.env.BOT_TOKEN,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      replyToken: event.reply_token,
      messages: [{ type: "text", text: "ได้รับแล้ว: " + event.content }],
    }),
  });
});

app.listen(3000);

4. ตั้ง Webhook URL

ใส่ URL ในแท็บ Webhook ของบอทใน Console แล้วกด ทดสอบ Webhook ระบบจะส่ง event webhook.test และแสดงผลทันที URL ต้องเป็น HTTPS และไม่ชี้ไปที่ที่อยู่ภายในเครือข่าย

cURL
curl -X POST "https://bots.gugarhices.com/v1/bots/@me/webhook" \
  -H "Authorization: Bearer $BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://your-server.example.com/webhook" }'

5. ทักบอทจากแอป

เพิ่มบอทเป็นเพื่อนในแอป HeloSChat แล้วส่งข้อความ บอทจะตอบกลับภายในไม่กี่วินาที ถ้าไม่ตอบ ให้ดูแท็บ Webhook ใน Console ซึ่งแสดงประวัติการส่งและรหัสตอบกลับของเซิร์ฟเวอร์คุณ

ขั้นต่อไป