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

HTTP API

ภาพรวม

HTTP API ให้บริการแชทโดยการสื่อสารกับเซิร์ฟเวอร์ 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 (Hive Authentication key): โทเค็นการรับรองสำหรับการเรียก API
    • สามารถตรวจสอบได้ที่ Hive Console > App Center > การจัดการโครงการ > รายละเอียดเกม > ข้อมูลพื้นฐาน
  • ดัชนีเกม (Game Index): ดัชนีของเกมที่สร้างใน Hive Console > App Center > การจัดการโครงการ

ประเภทช่อง

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

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

URL ที่ร้องขอ

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

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

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

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

  • รหัสการตอบสนอง API
รหัสสถานะ HTTP รหัส ข้อความ คำอธิบาย
200 0 สำเร็จ. สำเร็จ
400 100 คำขอไม่ถูกต้อง. คำขอไม่ถูกต้อง
401 101 โทเค็นไม่ถูกต้อง. โทเค็นไม่ถูกต้อง
403 102 ห้ามเข้าถึง. ไม่มีสิทธิ์
404 103 ไม่พบ. ไม่พบ
405 104 วิธีการไม่อนุญาต. วิธีการที่ไม่ได้รับอนุญาต
500 105 ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน. ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน
  • รหัสข้อผิดพลาดรายละเอียด (400, 403)
รหัสสถานะ HTTP รหัส ข้อความ คำอธิบาย
400 200 รหัสช่องซ้ำกัน ช่อง ID ซ้ำกัน
201 ไม่พบช่องหรือถูกลบ ไม่พบช่องหรือถูกลบ
202 ช่องเต็ม ไม่สามารถเข้าช่องได้เนื่องจากจำนวนผู้เข้าช่องเกิน
203 รหัสผ่านช่องไม่ถูกต้อง รหัสผ่านช่องไม่ถูกต้อง
204 ขนาดข้อความเกินขีดจำกัด ขนาดสูงสุดคือ 200 ขนาดข้อความเกินขีดจำกัด (สูงสุด 200 ตัวอักษร)
300 ผู้ใช้ไม่ได้อยู่ในเซสชัน ผู้ใช้ไม่ได้อยู่ในเซสชัน (ไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์ Socket)
301 ผู้ใช้ไม่ได้อยู่ในช่อง ผู้ใช้ไม่ได้อยู่ในช่อง
302 ผู้ใช้Already in the channel. ผู้ใช้Already in the channel.
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 integer Y

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

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็นหรือไม่
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 รหัสผลลัพธ์ integer
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับ object
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
content รายการช่อง array
page ข้อมูลหน้า object
เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา
ชื่อฟิลด์ คำอธิบาย ประเภท
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
เนื้อหาการตอบกลับ > ข้อมูล > หน้า
ชื่อฟิลด์ คำอธิบาย ประเภท
size จำนวนรายการต่อหน้า integer
currentPage หมายเลขหน้าปัจจุบัน integer
totalElements จำนวนรายการทั้งหมด integer
totalPages จำนวนหน้าทั้งหมด integer

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

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": "오픈 채팅방",
        "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 integer Y
channelId ID ช่องที่ต้องการดู string Y

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์ integer
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับ object
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
info ข้อมูลช่อง object
members รายชื่อผู้เข้าร่วม array
เนื้อหาการตอบกลับ > ข้อมูล > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
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 ผู้เล่น ID long
extraData ข้อมูลเพิ่มเติม (UTF-8 기준)
(สูงสุด 256 Byte)
string
connectedTime เวลาที่เชื่อมต่อ (UTC+0 기준, รูปแบบ 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 ID ช่องที่ต้องการดู สตริง ใช่

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์ integer
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับ object
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
members รายชื่อผู้เข้าร่วมช่อง array
ร่างตอบกลับ > ข้อมูล > สมาชิก
ชื่อฟิลด์ คำอธิบาย ประเภท
playerId Hive player ID long
extraData ข้อมูลเพิ่มเติม (UTF-8 기준)
(สูงสุด 256 Byte)
string
connectedTime วันที่และเวลาที่เชื่อมต่อ (UTC+0 기준, 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) string Y
Content-Type ประเภทของข้อมูลที่ร้องขอ (application/json) string Y

เนื้อหาการร้องขอ

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

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

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

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

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

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

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

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

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

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 integer Y
channelId รหัสช่อง string Y

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

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

เนื้อหาคำขอ

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์ integer
message ข้อความผลลัพธ์ 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-raw '{
    "playerId": 1001,
    "password": "guildPass123"
}'

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

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

ออกจากช่อง

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

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 รหัสช่อง สตริง ใช่

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

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

เนื้อหาคำขอ

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

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

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

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

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

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 Y
Content-Type ประเภทข้อมูลของคำขอ (application/json) string Y

เนื้อหาการร้องขอ

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

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

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

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

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

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 ผู้ใช้ที่ใช้ในบริการแชท พร้อมตัวอย่างโค้ด

การออก Token ผู้ใช้

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

เข้าถึงที่อยู่เซิร์ฟเวอร์ 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 ID ผู้เล่น Hive ยาว ใช่

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

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

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

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

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

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 จำนวนเต็ม Y
playerId ID ผู้เล่น Hive ยาว Y

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์ integer
message ข้อความผลลัพธ์ string
data ข้อมูลการตอบกลับ object
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
gameIndex ดัชนีเกม Hive integer
playerId ID ผู้เล่น Hive long
channels รายการช่อง array
เนื้อหาการตอบกลับ > ข้อมูล > ช่องทาง
ชื่อฟิลด์ คำอธิบาย ประเภท
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 ID ผู้เล่น Hive long Y

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

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

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

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
gameIndex อินเด็กซ์เกม Hive จำนวนเต็ม
playerId ID ผู้เล่น Hive ยาว
blockedUsers รายการที่ถูกบล็อก อาร์เรย์
เนื้อหาการตอบกลับ > ข้อมูล > บล็อก
ชื่อฟิลด์ คำอธิบาย ประเภท
blockedPlayerId Hive player ID ของผู้ใช้ที่ถูกบล็อก 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,
    "blocks": [
      {
        "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 ID ผู้เล่น Hive long Y
blockPlayerId ID ผู้เล่น Hive ที่จะถูกบล็อก long Y

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

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

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

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

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

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 ใช่
playerId ID ผู้เล่น Hive long ใช่
blockedPlayerId ID ผู้เล่น Hive ที่จะปลดบล็อก long ใช่

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

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

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

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

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

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