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

การยืนยันตัวตน

API token คือรหัสที่บอกว่าคำขอนี้มาจากบอทตัวไหน ทุกคำขอไปที่ https://api.sukson.dev/v1 ต้องส่ง token ของบอทในหัว Authorization แบบ Bearer

GET /v1/me HTTP/1.1
Host: api.sukson.dev
Authorization: Bearer skbot_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • token ขึ้นต้นด้วย skbot_ ตามด้วยค่าสุ่ม 256 บิต
  • Sukson เก็บแค่ค่า hash SHA-256 ของ token ไม่ได้เก็บตัว token เอง จึง แสดงให้ดูครั้งเดียว ตอนสร้างหรือออกใหม่ และกู้คืนไม่ได้
  • token หนึ่งตัวผูกกับบอทหนึ่งตัว บอทตัวนั้นคือ me ในทุก endpoint
HTTP code ความหมาย
401 INVALID_TOKEN ไม่มี token, รูปแบบผิด, token ถูกเปลี่ยนแล้ว หรือบอทถูกลบ คำตอบมีหัว WWW-Authenticate: Bearer realm="api.sukson.dev"
403 BOT_DISABLED ทีมงาน Sukson ปิดหรือแบนบอทนี้ (ถ้าเจ้าของลบบอท token จะตอบ 401 INVALID_TOKEN)
503 SERVICE_UNAVAILABLE ระบบตรวจ token ไม่ได้ชั่วคราว ลองใหม่ภายหลัง

ออก token ใหม่ได้ที่หน้าของบอทใน member.sukson.com/bots

  1. ออก token ใหม่ แล้วคัดลอกเก็บทันที
  2. อัปเดตค่าในเซิร์ฟเวอร์และ deploy
  3. token เดิมใช้ไม่ได้ทันทีที่ออกตัวใหม่ แต่บางคำขออาจยังผ่านได้อีกไม่เกินประมาณ 30 วินาที ระหว่างที่ระบบล้างแคช

ถ้าสงสัยว่า token รั่ว ให้เปลี่ยนทันที เช่น เผลอ commit ลง git, ไปโผล่ใน log หรือคนที่รู้ค่าลาออกไปแล้ว

  • เก็บใน secret manager หรือตัวแปรสภาพแวดล้อม ห้ามเขียนลงโค้ดหรือ commit ลง git
  • เรียก API จาก เซิร์ฟเวอร์เท่านั้น ห้ามใส่ token ในแอปมือถือ โค้ดที่รันในเบราว์เซอร์ หรือไฟล์ที่ผู้ใช้ดาวน์โหลดได้ (API นี้ไม่เปิด CORS อยู่แล้ว)
  • อย่าเขียนหัว Authorization หรือ URL ที่มี token ลง log
  • บอทแต่ละตัวมี token ของตัวเอง ถ้ามีหลายบอทก็มีหลาย token
  • เรียกด้วย https:// เสมอ ถ้าเคยเผลอเรียกด้วย http:// token อาจถูกส่งออกไปแบบไม่เข้ารหัสแล้ว ให้เปลี่ยน token ทันที