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

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

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

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

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

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

ประเภทช่องทางที่ใช้เมื่อส่ง API HTTP มีดังนี้

ประเภท คำอธิบาย
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)
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 ดัชนีเกม จำนวนเต็ม ใช่

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
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 รายการช่อง array
page ข้อมูลหน้า object
เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา
ชื่อฟิลด์ คำอธิบาย ประเภท
channelId รหัสช่อง string
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) string
gameIndex Hive ดัชนีเกม integer
owner Hive รหัสผู้เล่นของเจ้าของช่อง string
channelName ชื่อช่อง string
memberCount จำนวนผู้เข้าร่วมช่องปัจจุบัน integer
maxMemberCount จำนวนผู้เข้าร่วมช่องสูงสุด integer
regTime วันที่และเวลาการสร้างช่อง (ตาม UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) string
regTimeMillis วันที่และเวลาการสร้างช่อง (UnixTimestamp Millisecond) integer
เนื้อหาการตอบกลับ > ข้อมูล > หน้า
ชื่อฟิลด์ คำอธิบาย ประเภท
size จำนวนรายการต่อหน้า จำนวนเต็ม
currentPage หมายเลขหน้าปัจจุบัน จำนวนเต็ม
totalElements จำนวนรายการทั้งหมด จำนวนเต็ม
totalPages จำนวนหน้าทั้งหมด จำนวนเต็ม

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

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": "오픈 채팅방",
        "memberCount": 2,
        "maxMemberCount": 50,
        "regTime": "2024-12-30T15:01:01.004Z",
        "regTimeMillis": 1731306364351
      },
      /// ... 채널 정보
    ],
    "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 ใช่

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

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

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

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": "오픈채팅방",
      "memberCount": 2,
      "maxMemberCount": 50,
      "regTime": "2024-12-30T15:01:01.004Z",
      "regTimeMillis": 1731306364351
    },
    "members": [
      {
        "playerId": 1,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:06.604Z",
        "connectedTimeMillis": 1739328218507
      },
      {
        "playerId": 2,
        "extraData": null,
        "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 รหัสช่องที่ต้องการค้นหา สตริง ใช่

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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
connectedTimeMillis เวลาการเชื่อมต่อ (UnixTimestamp Millisecond) integer

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

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

สร้างช่อง

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

หาก playerId มีอยู่ ผู้ใช้จะได้รับอนุญาตให้เข้าช่อง หากไม่มี playerId เจ้าของจะเป็น SYSTEM

URL ที่ร้องขอ

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

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

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

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

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

เนื้อหาคำขอ

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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": "오픈 채팅방",
    "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 รหัสช่องที่ต้องการลบ สตริง ใช่

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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 Y
Content-Type ประเภทของข้อมูลคำขอ (application/json) string Y

เนื้อหาคำขอ

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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) สตริง ใช่
Content-Type ประเภทของข้อมูลการร้องขอ (application/json) สตริง ใช่

เนื้อหาคำขอ

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

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

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

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

เนื้อหาคำขอ

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
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": "서버 점검이 있습니다. 잠시 후 다시 접속해 주세요."
}'

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

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

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

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

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

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

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

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

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

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": "길드 채팅방",
        "memberCount": 1,
        "maxMemberCount": 50,
        "regTime": "2023-12-19T15:01:01.004Z",
        "regTimeMillis": 1731306364351
      },
      {
        "channelId": "open:67890",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "SYSTEM",
        "channelName": "오픈 채팅방",
        "memberCount": 2,
        "maxMemberCount": 100,
        "regTime": "2023-12-20T10:15:30.123Z",
        "regTimeMillis": 1731302348750
      }
      // ... 채널
    ]
  }
}

การดึงรายการบล็อกผู้ใช้

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

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 จำนวนเต็ม
playerId ID ผู้เล่น Hive ยาว
blockedUsers รายการที่ถูกบล็อก อาเรย์
Response body > data > blockedusers
ชื่อฟิลด์ คำอธิบาย ประเภท
blockedPlayerId รหัสผู้เล่นของผู้ใช้ที่ถูกบล็อก Hive long
blockedTime เวลาที่ถูกบล็อก (ตาม UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) string
blockedTimeMillis เวลาที่ถูกบล็อก (Unix Timestamp Millisecond) integer

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

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
      },
      // ... 차단 목록
    ]
  }
}

User block

ผู้ใช้บล็อกผู้ใช้เฉพาะเจาะจง

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) string Y

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น

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

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