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

HTTP API

ภาพรวม

API HTTP ให้บริการแชทโดยการสื่อสารกับเซิร์ฟเวอร์ API ผ่าน HTTP ประกอบด้วย Channel API และ User API เป็นหลัก

ฟีเจอร์หลักของแต่ละ API ช่องทางและ API ผู้ใช้มีดังนี้

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

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

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

การเตรียมการ

คุณต้องเตรียมรายการต่อไปนี้เพื่อใช้ API HTTP

  • Hive Certification Key (Hive 인증키): โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก 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) สตริง ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) สตริง ใช่

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

  • รหัสการตอบสนอง 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)
403 308 ผู้ใช้ไม่ใช่เจ้าของช่อง. ผู้ใช้ไม่ใช่เจ้าของช่อง

ฟีเจอร์ 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 จำนวนช่องที่ดึงต่อหน้า
(ขั้นต่ำ 10 ~ สูงสุด 100, ค่าเริ่มต้น 10)
integer N
page หมายเลขหน้าที่จะดึง
(เริ่มจาก 1, ค่าเริ่มต้น 1)
integer N

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

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

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

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",
        "maxMemberCount": 50,
        "regTime": "2024-12-30T15:01:01.004Z"
      },
      /// ... 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 รหัสช่องสำหรับการค้นหา สตริง ใช่

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

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

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

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

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

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",
        "maxMemberCount": 50,
        "regTime": "2024-12-30T15:01:01.004Z"
    },
    "members": [
      {
        "playerId": 1,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:06.604Z"
      },
      {
        "playerId": 2,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:16.233Z"
      }
    ]
  }
}

การสอบถามผู้เข้าร่วมช่อง

กำลังดึงข้อมูลผู้เข้าร่วมสำหรับช่องเฉพาะ

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 รหัสช่องที่ต้องการค้นหา สตริง ใช่

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

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

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

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

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

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,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:06.604Z"
      },
      {
        "playerId": 2,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:16.233Z"
      }
    ]
  }
}

สร้างช่อง

กำลังสร้างช่องการสนทนาใหม่

หาก 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 Hive รหัสผู้เล่นของผู้สร้างช่อง ยาว ไม่
password รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE)
(สูงสุด 50 ตัวอักษร)
สตริง ไม่
channelName ชื่อช่อง
(สูงสุด 50 ตัวอักษร)
สตริง ใช่
maxMemberCount จำนวนสูงสุดของผู้เข้าร่วมช่อง
(ขั้นต่ำ 2 ถึงสูงสุด 5,000)
จำนวนเต็ม ใช่
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) สตริง ใช่

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

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

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

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"
}'

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

{
    "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 รหัสช่องที่ต้องการลบ สตริง ใช่

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
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 รหัสช่อง สตริง ใช่

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

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

เนื้อหาคำขอ

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
playerId Hive player ID ของผู้ใช้ที่จะได้รับอนุญาต long Y
password รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE) string N

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

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

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

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-raw '{
    "playerId": 1001,
    "password": "guildPass123"
}'

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

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

ช่องทางออก

การลบผู้ใช้จากช่อง หากเจ้าของช่องออก ช่องจะถูกลบ

URL ที่ร้องขอ

เซิร์ฟเวอร์ URL
ไลฟ์ https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit
แซนด์บ็อกซ์ https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

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

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

พารามิเตอร์ส่วนหัว

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

เนื้อหาคำขอ

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

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

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

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

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

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."
}

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

ส่งข้อความประกาศไปยังช่องเฉพาะหรือทุกช่องในเกม หากไม่ได้ระบุพารามิเตอร์ channelId ข้อความประกาศจะถูกส่งไปยังทุกช่องที่สร้างขึ้นสำหรับ gameIndex ที่เกี่ยวข้อง

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 ดัชนีเกม integer Y

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

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

เนื้อหาคำขอ

นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอส่งข้อความการแจ้งเตือน

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
channelId รหัสช่องเพื่อส่งข้อความ (channelId จะส่งไปยังทุกช่องหากไม่ได้ระบุ) string N
message เนื้อหาของข้อความการแจ้งเตือนที่จะส่ง string Y

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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",
    "message": "Server maintenance is in progress. Please try connecting again later."
}'

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

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

ฟีเจอร์ API ผู้ใช้

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

การออกโทเค็นผู้ใช้

ออกโทเค็นการรับรองความถูกต้องสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ซ็อกเก็ต

เชื่อมต่อกับที่อยู่เซิร์ฟเวอร์ 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 Hive รหัสผู้เล่น ยาว ใช่

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสการตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
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 Hive รหัสผู้เล่น ยาว ใช่

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

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

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

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

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

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",
        "maxMemberCount": 50,
        "regTime": "2023-12-19T15:01:01.004Z"
      },
      {
        "channelId": "open:67890",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "SYSTEM",
        "channelName": "Open chat room",
        "maxMemberCount": 100,
        "regTime": "2023-12-20T10:15:30.123Z"
      }
      // ... channel
    ]
  }
}

การสอบถามรายการบล็อกผู้ใช้

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

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 ดัชนีเกม string Y
playerId Hive รหัสผู้เล่น long Y

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

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

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

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

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

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"
      },
      {
        "blockedPlayerId": 1003,
        "blockedTime": "2023-12-21T08:45:12.456Z"
      },
      // ... Block 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 ดัชนีเกม string Y
playerId Hive รหัสผู้เล่น long Y
blockPlayerId Hive รหัสผู้เล่นที่ถูกบล็อก long Y

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
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 ดัชนีเกม string Y
playerId Hive รหัสผู้เล่น long Y
blockedPlayerId Hive รหัสผู้เล่นที่จะปลดบล็อก long Y

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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."
}