ข้ามไปที่เนื้อหา

Http api

ภาพรวม

บริการแชทมีให้บริการผ่าน HTTP API แบ่งออกเป็น channel API, user API, และ message API.

  • API ช่อง
    • รับ API รายการช่องทั้งหมด
    • รับ API ช่อง
    • รับ API สมาชิกช่อง
    • สร้าง API ช่อง
    • ลบ API ช่อง
    • เข้าร่วม API ช่อง
    • ออกจาก API ช่อง
  • API ผู้ใช้
    • ออก API โทเค็นผู้ใช้
    • รับ API ช่องที่ผู้ใช้เข้าร่วม
    • รับ API รายการบล็อกผู้ใช้
    • บล็อก API ผู้ใช้
    • ยกเลิกบล็อก API ผู้ใช้
  • API ข้อความ
    • ส่ง API ข้อความประกาศช่อง
    • ส่ง API ข้อความประกาศผู้ใช้
    • ส่ง API ข้อความกำหนดเองช่อง
    • ส่ง API ข้อความกำหนดเองผู้ใช้
    • รับ API ประวัติข้อความช่อง

ข้อมูลพื้นฐาน

ส่วนนี้ให้ข้อมูลพื้นฐานที่คุณต้องรู้เมื่อใช้ HTTP API

ข้อกำหนดเบื้องต้น

ในการใช้ HTTP API คุณต้องการสิ่งต่อไปนี้:

  • Hive certification key: โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API
    • สามารถพบได้ที่ Hive Console > App Center > Project management > Game details > Basic information
  • Game index: ดัชนีของเกมที่สร้างขึ้นใน Hive Console > App Center > Project management<

ประเภทช่องทาง

ช่องทางประเภทต่อไปนี้ถูกใช้เมื่อส่งผ่าน HTTP API

ประเภท คำอธิบาย
PUBLIC ช่องที่ใครก็สามารถเข้าร่วมได้
PRIVATE ช่องที่ต้องการรหัสผ่านในการเข้าร่วม
GROUP ช่องสำหรับผู้ใช้เฉพาะ (เช่น กิลด์)

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE api-chat.withhive.com
SANDBOX sandbox-api-chat.withhive.com

หัวข้อทั่วไป

ฟิลด์ คำอธิบาย ประเภท จำเป็นต้องใช้
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) string ใช่

รหัสการตอบกลับ

  • รหัสการตอบสนอง API
รหัสสถานะ HTTP รหัส ข้อความ คำอธิบาย
200 0 สำเร็จ. สำเร็จ
400 100 คำขอไม่ถูกต้อง. คำขอไม่ถูกต้อง
401 101 โทเค็นไม่ถูกต้อง. โทเค็นไม่ถูกต้อง
403 102 ห้ามเข้าถึง. ไม่มีสิทธิ์
404 103 ไม่พบ. ไม่พบ
405 104 วิธีการไม่อนุญาต. วิธีการไม่อนุญาต
500 105 ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน. ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน
  • รหัสข้อผิดพลาดที่ละเอียด (400, 403)
รหัสสถานะ HTTP รหัส ข้อความ คำอธิบาย
400 200 รหัสช่องซ้ำกัน. รหัสช่องซ้ำกัน
201 ไม่พบช่องหรือถูกลบ. ไม่พบช่องหรือถูกลบ
202 ช่องเต็ม. ช่องเต็ม
203 รหัสผ่านช่องไม่ถูกต้อง. รหัสผ่านช่องไม่ถูกต้อง
204 ขนาดข้อความเกินกำหนด. ขนาดสูงสุดคือ 200. ขนาดข้อความเกินกำหนด (สูงสุด 200 ตัวอักษร)
300 ผู้ใช้ไม่อยู่ในเซสชัน. ผู้ใช้ไม่อยู่ในเซสชัน (ไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์ Socket)
301 ผู้ใช้ไม่อยู่ในช่อง. ผู้ใช้ไม่อยู่ในช่อง
302 ผู้ใช้มีอยู่ในช่องแล้ว. ผู้ใช้มีอยู่ในช่องแล้ว
303 ผู้ใช้ถูกบล็อกแล้ว. ผู้ใช้ถูกบล็อกแล้ว
304 รายการบล็อกเต็ม. ขนาดสูงสุดคือ 100. รายการบล็อกเต็ม (สูงสุด 100 ผู้ใช้)
305 ผู้ใช้ไม่อยู่ในรายการบล็อก. ผู้ใช้ไม่อยู่ในรายการบล็อก
306 ผู้ใช้ถูกบล็อก. ผู้ใช้ถูกบล็อก
307 จำนวนช่องสูงสุดที่ผู้ใช้สามารถเข้าคือ 10. เกินจำนวนช่องสูงสุดที่ผู้ใช้สามารถเข้าถึง (จำกัด 10)
400 ขนาดข้อความที่กำหนดเองเกินกำหนด. ขนาดสูงสุดคือ 8,000 ไบต์. ขนาดเกินกำหนดสำหรับข้อความที่กำหนดเอง (สูงสุด 8,000 ไบต์)
403 308 ผู้ใช้ไม่ใช่เจ้าของช่อง. ผู้ใช้ไม่ใช่เจ้าของช่อง

ฟังก์ชัน Channel API

ส่วนนี้อธิบายเกี่ยวกับคำขอ API, การตอบกลับ, และโค้ดตัวอย่างสำหรับแต่ละฟังก์ชันของ API ช่องที่ใช้ในบริการแชท.

รับช่องทั้งหมด

เรียกรายการช่องทั้งหมดที่ถูกสร้างขึ้น

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels
HTTP METHOD GET

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็นต้องมี
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

พารามิเตอร์การค้นหา

ฟิลด์ คำอธิบาย ประเภท จำเป็น
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) string N
channelId ดึงช่องที่เริ่มต้นด้วย ID ช่องนี้ string N
channelName ดึงช่องที่มีชื่อช่องนี้ string N
sort เกณฑ์การจัดเรียง (channelId, channelName, regTime)
(เริ่มต้น regTime)
string N
order ลำดับการจัดเรียง (ASC, DESC)
(เริ่มต้น DESC)
string N
size จำนวนช่องที่ดึงต่อหน้า
(ขั้นต่ำ 1 ~ สูงสุด 10, เริ่มต้น 10)
integer N
page หมายเลขหน้าที่จะดึง
(เริ่มจาก 1, เริ่มต้น 1)
integer N

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
content รายการช่อง อาร์เรย์วัตถุ
page ข้อมูลหน้า วัตถุ
เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา
ฟิลด์ คำอธิบาย ประเภท
channelId รหัสช่อง สตริง
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) สตริง
gameIndex ดัชนีเกม Hive จำนวนเต็ม
owner รหัสผู้เล่นของเจ้าของช่อง สตริง
channelName ชื่อช่อง สตริง
memberCount จำนวนสมาชิกปัจจุบันในช่อง จำนวนเต็ม
maxMemberCount จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง จำนวนเต็ม
chatHistoryAllowed สามารถดูประวัติข้อความได้หรือไม่ บูลีน
regTime วันที่และเวลาที่สร้างช่อง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) สตริง
regTimeMillis วันที่และเวลาที่สร้างช่อง (UnixTimestamp มิลลิวินาที) ยาว
เนื้อหาการตอบกลับ > ข้อมูล > หน้า
ฟิลด์ คำอธิบาย ประเภท
ขนาด จำนวนรายการต่อหน้า จำนวนเต็ม
หน้าปัจจุบัน หมายเลขหน้าปัจจุบัน จำนวนเต็ม
จำนวนทั้งหมด จำนวนรายการทั้งหมด จำนวนเต็ม
จำนวนหน้าทั้งหมด จำนวนหน้าทั้งหมด จำนวนเต็ม

ตัวอย่างคำขอ

curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels?type=PUBLIC&sort=regTime&order=DESC&size=10&page=1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "content": [
      {
        "channelId": "open:12345",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "Open Chat Room",
        "memberCount": 2,
        "maxMemberCount": 50,
        "chatHistoryAllowed": true,
        "regTime": "2024-12-30T15:01:01.004Z",
        "regTimeMillis": 1731306364351
      },
      /// ... Channel information
    ],
    "page": {
      "size": 10,
      "currentPage": 1,
      "totalElements": 100,
      "totalPages": 10
    }
  }
}

รับช่อง

ดึงข้อมูลรายละเอียดเกี่ยวกับช่องทาง

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}
HTTP METHOD GET

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId ID ของช่องที่ต้องการดึงข้อมูล สตริง ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
รหัส รหัสการตอบกลับ จำนวนเต็ม
ข้อความ ข้อความผลลัพธ์ สตริง
ข้อมูล ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
info ข้อมูลช่อง วัตถุ
members รายชื่อสมาชิก อาร์เรย์วัตถุ
เนื้อหาการตอบกลับ > ข้อมูล > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
channelId รหัสช่อง สตริง
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) สตริง
gameIndex Hive ดัชนีเกม จำนวนเต็ม
owner เจ้าของช่อง สตริง
channelName ชื่อช่อง สตริง
memberCount จำนวนสมาชิกปัจจุบันในช่อง จำนวนเต็ม
maxMemberCount จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง จำนวนเต็ม
chatHistoryAllowed ว่าประวัติข้อความสามารถดูได้หรือไม่ บูลีน
regTime วันที่และเวลาการสร้างช่อง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) สตริง
regTimeMillis วันที่และเวลาการสร้างช่อง (UnixTimestamp มิลลิวินาที) ยาว
เนื้อหาการตอบกลับ > ข้อมูล > สมาชิก
ฟิลด์ คำอธิบาย ประเภท
playerId รหัสผู้เล่น long
connectedTime วันที่และเวลาการเชื่อมต่อ (มาตรฐาน UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) string
connectedTimeMillis วันที่และเวลาการเชื่อมต่อ (UnixTimestamp มิลลิวินาที) long

ตัวอย่างคำขอ

curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "info": {
      "channelId": "open:12345",
      "type": "PUBLIC",
      "gameIndex": 1,
      "owner": "SYSTEM",
      "channelName": "Open Chat Room",
      "memberCount": 2,
      "maxMemberCount": 50,
      "chatHistoryAllowed": true,
      "regTime": "2024-12-30T15:01:01.004Z",
      "regTimeMillis": 1731306364351
    },
    "members": [
      {
        "playerId": 1,
        "connectedTime": "2024-11-25T06:22:06.604Z",
        "connectedTimeMillis": 1739328218507
      },
      {
        "playerId": 2,
        "connectedTime": "2024-11-25T06:22:16.233Z",
        "connectedTimeMillis": 1731306364351
      }
    ]
  }
}

รับสมาชิกช่อง

เรียกข้อมูลเกี่ยวกับสมาชิกของช่อง

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members
HTTP METHOD GET

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId ID ของช่องที่ต้องการดึงข้อมูล สตริง ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ วัตถุ
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
members รายชื่อสมาชิกช่อง อาร์เรย์วัตถุ
ร่างตอบกลับ > ข้อมูล > สมาชิก
ฟิลด์ คำอธิบาย ประเภท
playerId รหัสผู้เล่น long
connectedTime วันที่และเวลาการเชื่อมต่อ (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) string
connectedTimeMillis วันที่และเวลาการเชื่อมต่อ (UnixTimestamp มิลลิวินาที) long

ตัวอย่างคำขอ

curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345/members' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "members": [
      {
        "playerId": 1,
        "connectedTime": "2024-11-25T06:22:06.604Z",
        "connectedTimeMillis": 1739328218507
      },
      {
        "playerId": 2,
        "connectedTime": "2024-11-25T06:22:16.233Z",
        "connectedTimeMillis": 1731306364351
      }
    ]
  }
}

สร้างช่อง

สร้างช่องทางใหม่

หากคุณป้อน playerId ในเนื้อหาของคำขอ ผู้ใช้ที่ตรงกับ playerId จะกลายเป็นเจ้าของช่องและเข้าร่วมช่อง หากคุณไม่ป้อน playerId SYSTEM จะกลายเป็นเจ้าของช่อง

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channel
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channel
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จะถูกส่งเมื่อทำการขอสร้างช่องทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
channelId รหัสช่อง
(สามารถใช้ตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก, ตัวเลข, และอักขระพิเศษบางตัว (-, ., _, ~, :), สูงสุด 100 ตัวอักษร)
สตริง ใช่
playerId รหัสผู้เล่นของผู้สร้างช่อง ยาว ไม่
password รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE)
(สูงสุด 50 ตัวอักษร)
สตริง ไม่
channelName ชื่อช่อง
(สูงสุด 50 ตัวอักษร)
สตริง ใช่
maxMemberCount จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง
(ขั้นต่ำ 2 ~ สูงสุด 5,000)
จำนวนเต็ม ใช่
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) สตริง ใช่
chatHistoryAllowed ว่าสามารถดูประวัติข้อความได้หรือไม่
(ค่าเริ่มต้นคือ false)
บูลีน ไม่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
รหัส รหัสการตอบกลับ จำนวนเต็ม
ข้อความ ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/channel' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data'{
    "channelId": "open:12345",
    "playerId": 1000,
    "channelName": "Open Chat Room",
    "maxMemberCount": 100,
    "type": "PUBLIC",
    "chatHistoryAllowed": true
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

ลบช่อง

ลบช่องทาง.

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}
HTTP Method DELETE

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId ID ของช่องที่จะลบ สตริง ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็นต้องใช้
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request DELETE 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

เข้าสู่ช่อง

กรุณาเข้าสู่ช่องทาง.

จำนวนช่องสูงสุดที่สามารถกรอกได้คือ 10 ช่องต่อผู้ใช้

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId ID ของช่องที่ต้องการเข้า สตริง ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จำเป็นเมื่อขอเข้าช่องทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
playerId รหัสผู้เล่นของผู้ใช้ที่จะถูกป้อน long ใช่
password รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE) string ไม่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
รหัส รหัสการตอบกลับ จำนวนเต็ม
ข้อความ ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://api-chat.withhive.com/api/v1/games/1/channels/guild:12345/enter' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data '{
    "playerId": 1001,
    "password": "guildPass123"
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

ช่องทางออก

ออกจากช่องทาง.

แม้ว่าเจ้าของช่องจะออกจากระบบ ช่องจะยังคงอยู่ อย่างไรก็ตาม หากเจ้าของไม่ใช่ SYSTEM และไม่มีผู้เข้าร่วมในช่อง ช่องจะถูกลบออกเป็นระยะ ๆ

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId ID ของช่องที่ต้องการออก สตริง ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จำเป็นเมื่อขอออกจากช่องทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็นต้องมี
playerId รหัสผู้เล่นของผู้ใช้ที่จะออก long ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
รหัส รหัสการตอบกลับ จำนวนเต็ม
ข้อความ ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/channels/guild:12345/exit' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data '{
    "playerId": 1001
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

ฟังก์ชัน API ของผู้ใช้

ส่วนนี้อธิบายเกี่ยวกับคำขอ API, การตอบสนอง, และโค้ดตัวอย่างสำหรับแต่ละฟังก์ชันของ API ผู้ใช้ที่ใช้ในบริการแชท

ปัญหาสร้างโทเค็นผู้ใช้

ออกโทเค็นการตรวจสอบสิทธิ์สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ Socket.

เชื่อมต่อกับที่อยู่เซิร์ฟเวอร์ Socket ที่ส่งคืนโดยใช้โทเค็นที่ออกให้

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token
HTTP METHOD POST

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
playerId รหัสผู้เล่น ยาว ใช่

พารามิเตอร์หัวข้อ

ฟิลด์ คำอธิบาย ประเภท จำเป็นต้องใช้
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
รหัส รหัสการตอบกลับ จำนวนเต็ม
ข้อความ ข้อความผลลัพธ์ สตริง
ข้อมูล ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
gameIndex ดัชนีเกม Hive จำนวนเต็ม
socketAddress ที่อยู่เซิร์ฟเวอร์ซ็อกเก็ต สตริง
token โทเค็นที่ออก สตริง

ตัวอย่างคำขอ

curl  --request POST 'https://api-chat.withhive.com/api/v1/games/1/users/1001/token' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "socketAddress": "wss://test-socket-chat.withhive.com/ws",
    "token": "eyJhbGciOiJIUzI1NiJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg"
  }
}

รับช่องที่ผู้ใช้เข้าร่วม

ดึงรายการช่องที่ผู้ใช้เข้าร่วม

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels
HTTP METHOD GET

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
playerId รหัสผู้เล่น ยาว ใช่

พารามิเตอร์หัวข้อ

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการรับรองความถูกต้องสำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
gameIndex Hive ดัชนีเกม จำนวนเต็ม
playerId รหัสผู้เล่น ยาว
channels รายการช่อง อาร์เรย์วัตถุ
เนื้อหาการตอบกลับ > ข้อมูล > ช่องทาง
ฟิลด์ คำอธิบาย ประเภท
channelId รหัสช่อง สตริง
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) สตริง
gameIndex Hive ดัชนีเกม จำนวนเต็ม
owner เจ้าของช่อง สตริง
channelName ชื่อช่อง สตริง
memberCount จำนวนสมาชิกปัจจุบันในช่อง จำนวนเต็ม
maxMemberCount จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง จำนวนเต็ม
chatHistoryAllowed สามารถดูประวัติข้อความได้หรือไม่ บูลีน
regTime วันที่และเวลาสร้างช่อง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) สตริง
regTimeMillis วันที่และเวลาสร้างช่อง (UnixTimestamp มิลลิวินาที) ยาว

ตัวอย่างการร้องขอ

curl --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/channels' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "playerId": 1001,
    "channels": [
      {
        "channelId": "guild:12345",
        "type": "GROUP",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "Guild Chat Room",
        "memberCount": 1,
        "maxMemberCount": 50,
        "chatHistoryAllowed": true,
        "regTime": "2023-12-19T15:01:01.004Z",
        "regTimeMillis": 1731306364351
      },
      {
        "channelId": "open:67890",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "SYSTEM",
        "channelName": "Open Chat Room",
        "memberCount": 2,
        "maxMemberCount": 100,
        "chatHistoryAllowed": true,
        "regTime": "2023-12-20T10:15:30.123Z",
        "regTimeMillis": 1731302348750
      }
      // ... channels
    ]
  }
}

รับรายการบล็อกผู้ใช้

ดึงรายการผู้ใช้ที่ถูกบล็อกโดยผู้ใช้

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks
HTTP METHOD GET

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม สตริง ใช่
playerId รหัสผู้เล่น ยาว ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ คำอธิบาย ประเภท
gameIndex Hive ดัชนีเกม จำนวนเต็ม
playerId รหัสผู้เล่น ยาว
blockedUsers รายชื่อผู้ใช้ที่ถูกบล็อก อาร์เรย์วัตถุ
Response body > data > blockedUsers
ฟิลด์ คำอธิบาย ประเภท
blockedPlayerId รหัสผู้เล่นของผู้ใช้ที่ถูกบล็อก long
blockedTime วันที่และเวลาที่ผู้ใช้ถูกบล็อก (มาตรฐาน UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) string
blockedTimeMillis วันที่และเวลาที่ผู้ใช้ถูกบล็อก (UnixTimestamp Millisecond) long

ตัวอย่างคำขอ

curl  --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/blocks' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "playerId": 1001,
    "blockedUsers": [
      {
        "blockedPlayerId": 1002,
        "blockedTime": "2023-12-20T10:15:30.123Z",
        "blockedTimeMillis": 1739329550811
      },
      {
        "blockedPlayerId": 1003,
        "blockedTime": "2023-12-21T08:45:12.456Z",
        "blockedTimeMillis": 1739329553137
      },
      // ... Blocked users list
    ]
  }
}

บล็อกผู้ใช้

บล็อกผู้ใช้อื่น นี่จะจำกัดการส่งและรับข้อความแบบเรียลไทม์

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId}
HTTP METHOD POST

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex ดัชนีเกม Hive สตริง ใช่
playerId รหัสผู้เล่น ยาว ใช่
blockPlayerId รหัสผู้เล่นที่ต้องการบล็อก ยาว ใช่

พารามิเตอร์หัวข้อ

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/block/1002' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success."
}

ปลดบล็อกผู้ใช้

ปลดบล็อกผู้ใช้ที่ถูกบล็อก

URL คำขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId}
HTTP METHOD DELETE

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม สตริง ใช่
playerId รหัสผู้เล่น ยาว ใช่
blockedPlayerId รหัสผู้เล่นที่จะปลดบล็อก ยาว ใช่

พารามิเตอร์หัวข้อ

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request DELETE 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/block/1002' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success."
}

ฟังก์ชัน Message API

API สำหรับการส่งการแจ้งเตือนหรือข้อความที่กำหนดเอง หรือการเรียกดูประวัติข้อความสำหรับช่องทางเฉพาะ

ส่งข้อความแจ้งเตือน

ส่งข้อความแจ้งเตือนไปยังช่องเฉพาะหรือผู้ใช้ทั้งหมด

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จะถูกส่งเมื่อขอส่งข้อความแจ้งเตือน

ฟิลด์ คำอธิบาย ประเภท จำเป็น
channelId รหัสของช่องทางในการส่งข้อความ สตริง N
langCode รหัสภาษาของ Hive สำหรับผู้ใช้ที่จะได้รับข้อความ (ส่งโดยไม่คำนึงถึงภาษา หากไม่ได้ระบุ)
(อิงตาม ISO 639 alpha-2 ใช้แท็ก Script เพื่อแยกแยะภาษาที่ไม่ได้จัดประเภทตาม ISO 639 alpha-2)
สตริง N
message เนื้อหาของข้อความแจ้งเตือนที่จะส่ง
(สูงสุด 200 ตัวอักษร)
สตริง Y

channelId

หากมีการระบุ channelId ข้อความ Channel notice message จะถูกส่งไปยังผู้ใช้ทั้งหมดที่เชื่อมต่อกับช่องทางนั้น

หาก channelId ไม่ได้ถูกระบุ ข้อความ User notice message จะถูกส่งไปยังผู้ใช้ทุกคนที่เชื่อมต่อกับแอปที่มี gameIndex ที่ตรงกัน

รหัสภาษา

หาก langCode ไม่ได้ถูกระบุ ข้อความจะถูกส่งไปยังผู้ใช้ทั้งหมดโดยไม่คำนึงถึงภาษา

หาก langCode ถูกระบุ ข้อความจะถูกส่งไปยังผู้ใช้ที่ langCode ตรงกับค่าเท่านั้น ตัวอย่างเช่น หาก langCode เป็น en ข้อความแจ้งเตือนจะถูกส่งไปยัง ผู้ใช้ที่ Request body langCode เป็น en เมื่อเชื่อมต่อกับไคลเอนต์

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "channelId": "open:12345",
    "langCode": "en",
    "message": "Server maintenance. Please reconnect later."
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

ส่งข้อความแจ้งเตือนผู้ใช้

ส่งข้อความ User notice message ไปยังผู้ใช้

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId}
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
playerId Hive รหัสผู้เล่น ยาว ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จะถูกส่งเมื่อขอส่งข้อความแจ้งเตือนไปยังผู้ใช้

ฟิลด์ คำอธิบาย ประเภท จำเป็น
langCode รหัสภาษาของ Hive ของผู้ใช้ที่จะได้รับข้อความ (ส่งไม่คำนึงถึงภาษา หากไม่ได้ระบุ)
(ตาม ISO 639 alpha-2 ใช้แท็ก Script เพื่อแยกแยะภาษาที่ไม่ได้จัดประเภทตาม ISO 639 alpha-2)
สตริง ไม่
message เนื้อหาของข้อความประกาศที่จะส่ง
(สูงสุด 200 ตัวอักษร)
สตริง ใช่

null หาก langCode ไม่ได้ถูกระบุ ข้อความจะถูกส่งไปยังผู้ใช้โดยไม่คำนึงถึงภาษา

หาก langCode ถูกระบุ ข้อความแจ้งเตือนจะถูกส่งเฉพาะเมื่อ langCode ในคำขอของไคลเอนต์เมื่อเชื่อมต่อเข้ากับ API นี้ตรงกับ langCode ของ API นี้ ตัวอย่างเช่น หากไคลเอนต์ของ playerId=1111 เชื่อมต่อด้วย langCode=en และ API นี้ถูกเรียกด้วย playerId=1111, langCode=ja ข้อความแจ้งเตือนจะไม่ถูกส่งไปยังผู้ใช้รายนี้

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice/users/123123' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "langCode": "en",
    "message": "This is a notice message for user 123123."
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

ส่งข้อความที่กำหนดเองในช่อง

ส่งข้อความที่กำหนดเองไปยังผู้ใช้ทั้งหมดที่เข้าร่วมในช่อง

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId}
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId ID ของช่องทางในการส่งข้อความ สตริง ใช่

พารามิเตอร์หัวข้อ

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จะถูกส่งเมื่อทำการขอส่งข้อความที่กำหนดเอง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
message เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 standard)
(สูงสุด 8,000 ไบต์)
string Y

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/channels/public:123' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "message": "This is a custom message."
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

ส่งข้อความที่กำหนดเองให้ผู้ใช้

ส่งข้อความที่กำหนดเองไปยังผู้ใช้

URL การร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users
HTTP METHOD POST
CONTENT-TYPE application/json

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่

พารามิเตอร์หัวข้อ

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

ข้อมูลที่จะถูกส่งเมื่อทำการขอส่งข้อความที่กำหนดเองไปยังผู้ใช้

ฟิลด์ คำอธิบาย ประเภท จำเป็น
playerIds รายการของตัวระบุบัญชีที่จะได้รับข้อความ
รายการ ID ผู้เล่น
(สูงสุด 10 ผู้ใช้)
long array ใช่
message เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 standard)
(สูงสุด 8,000 ไบต์)
string ใช่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง

ตัวอย่างคำขอ

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/users' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "playerIds": [
        123123
    ],
    "message": "This is a custom message."
}'

ตัวอย่างการตอบกลับ

{
    "code": 0,
    "message": "Success."
}

รับประวัติข้อความช่อง

ดึงประวัติข้อความของช่อง ประวัติข้อความของช่องจะถูกจัดเตรียมด้วยการแบ่งหน้าแบบใช้เคอร์เซอร์ และสามารถดึงประวัติข้อความจาก 30 วันที่ผ่านมาเท่านั้น API นี้สามารถใช้ได้เฉพาะเมื่อการตั้งค่าช่อง เปิดใช้งานการดูประวัติการสนทนาก่อนหน้า ประวัติข้อความของช่องที่ได้รับในคำตอบ API อาจรวมถึงข้อความจาก ผู้ใช้ที่ถูกบล็อก

การแบ่งหน้า: ขนาดและดัชนี

การแบ่งหน้าโดยใช้พารามิเตอร์การค้นหา index จะถูกจัดเตรียมไว้ ค่าเริ่มต้นของ index คือไม่มี และหากมีการส่งคำขอโดยไม่มี index ข้อความล่าสุดจะถูกดึงข้อมูลตาม size

ตัวอย่างเช่น หากเรียก API ด้วย size=5 โดยไม่มี index จะส่งคืนประวัติข้อความ 5 รายการล่าสุดพร้อมกับ nextIndex (เช่น 68009c30780e4f2d9830d8a0)

จากนั้น หากมีการเรียก API ด้วย index=68009c30780e4f2d9830d8a0 และ size=5 ข้อความ 5 ข้อความที่เกิดขึ้นก่อนข้อความสุดท้ายที่ส่งคืนจะถูกเรียกคืน

การแบ่งหน้า: มีถัดไป

หากค่าการตอบกลับ hasNext เป็น true จะมีประวัติข้อความเพิ่มเติมให้ใช้งาน กล่าวอีกนัยหนึ่งคือ nextIndex ที่ได้รับในคำตอบสามารถใช้เป็น index เพื่อดึงประวัติข้อความก่อนหน้าของช่องทางเพิ่มเติมได้

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages
HTTP METHOD GET

พารามิเตอร์เส้นทาง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex Hive ดัชนีเกม จำนวนเต็ม ใช่
channelId รหัสของช่องที่ต้องการดึงข้อมูล จำนวนเต็ม ใช่

พารามิเตอร์หัวเรื่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) สตริง ใช่

พารามิเตอร์การค้นหา

ข้อมูลสตริงคำถามที่จำเป็นเมื่อขอเรียกประวัติข้อความช่อง

ฟิลด์ คำอธิบาย ประเภท จำเป็น
size ขนาดของประวัติช่อง
(ขั้นต่ำ 1 ~ สูงสุด 50)
จำนวนเต็ม ใช่
index ดัชนีที่ใช้สำหรับการดึงข้อมูล (ดึงข้อความล่าสุดหากไม่ได้ระบุ) สตริง ไม่

เนื้อหาการตอบกลับ

ฟิลด์ คำอธิบาย ประเภท
รหัส รหัสการตอบกลับ จำนวนเต็ม
ข้อความ ข้อความผลลัพธ์ สตริง
ข้อมูล ข้อมูลการตอบกลับ วัตถุ

เนื้อหาการตอบกลับ > ข้อมูล

ฟิลด์ คำอธิบาย ประเภท
hasNext ว่ามีข้อมูลเพิ่มเติมที่สามารถดึงมาได้หรือไม่ boolean
nextIndex ดัชนีถัดไปที่ใช้สำหรับการดึงข้อมูล string
content ประวัติข้อความช่องทาง อาร์เรย์วัตถุ

เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา

ฟิลด์ คำอธิบาย ประเภท
gameIndex Hive ดัชนีเกม จำนวนเต็ม
from ตัวระบุของบัญชีที่ได้รับข้อความ
รหัสผู้เล่น
ยาว
extraData ข้อมูลผู้ใช้งานเพิ่มเติม (UTF-8 มาตรฐาน)
(สูงสุด 256 ไบต์)
สตริง
to รหัสของช่องทางที่ข้อความถูกส่งไป สตริง
message เนื้อหาข้อความ สตริง
langCode Hive รหัสภาษา
(ตามมาตรฐาน ISO 639 alpha-2, ใช้แท็กสคริปต์เพื่อแยกแยะภาษาที่ไม่ได้จัดประเภทโดย ISO 639 alpha-2)
สตริง
timestamp วันที่และเวลาที่ข้อความถูกส่ง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) สตริง
timestampMillis วันที่และเวลาที่ข้อความถูกส่ง (UnixTimestamp มิลลิวินาที) ยาว

ตัวอย่างคำขอ

curl --request GET 'https://test-api-chat.withhive.com/api/v1/games/1/channels/open:1/messages?size=50' \
--header 'Authorization: hivechat 005056fffea3fd10-000400fd-00000797-f67881178d98d1cd-64ae9a76'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "hasNext": true,
    "nextIndex": "67c7d83336af25202c1c0ad4",
    "content": [
    // size=50이므로 아래와 같은 객체들을 50개 반환함.
      {
        "gameIndex": 1,
        "from": 1111112,
        "extraData": "Kim Hive",
        "to": "open:10",
        "message": "zzz",
        "langCode": "ko",
        "timestamp": "2025-03-05T04:50:59.757Z",
        "timestampMillis": 1741150259757
      },
      {
        "gameIndex": 1,
        "from": 1111111,
        "extraData": null,
        "to": "open:10",
        "message": "Hive2",
        "langCode": "ko",
        "timestamp": "2025-03-05T04:51:01.689Z",
        "timestampMillis": 1741150261689
      },
    ]
  }
}