ช่อง
 คู่มือนี้อธิบายวิธีการใช้ API สำหรับการสร้างและลบช่อง, การอัปเดตข้อมูลช่อง, และการดึงรายชื่อช่องและผู้เข้าร่วม
 ภาพรวม
 ช่องคือพื้นที่เชิงแนวคิดที่การสนทนาเกิดขึ้น และการสนทนาในเกมทั้งหมดจะเกิดขึ้นภายในช่องต่างๆ
 ส่วนนี้อธิบายประเภทของช่องและวิธีการดำเนินการช่องที่รองรับโดย API 
 ประเภทช่องทาง
 ช่องทางประเภทต่อไปนี้สามารถสร้างได้ผ่านคำขอ API
    | ประเภทช่องทาง | สมาชิก | ขีดจำกัดการเข้าร่วม | ออกจากระบบเมื่อหลุด | กรณีการใช้งานหลัก | 
    | PUBLIC | 1 ~ 5000 | สูงสุด 10 | O | แชทเปิด, กิจกรรม | 
  | GROUP | 1 ~ 500 | สูงสุด 10 | X | กิลด์, ทีม, ปาร์ตี้ | 
  | PRIVATE | 1 ~ 500 | สูงสุด 10 | X | เพื่อน, กลุ่มส่วนตัว | 
  | ONE_ON_ONE | 2 | สูงสุด 200 | X | แชท 1:1 | 
  
  - ช่อง PUBLICเหมาะสำหรับการสนทนาแบบเปิดกับผู้เข้าร่วมที่ไม่ระบุ
- ผู้ใช้ที่เชื่อมต่อกับเซิร์ฟเวอร์ซ็อกเก็ตเท่านั้นที่สามารถเข้าร่วมช่องได้
- ช่อง GROUPและPRIVATEเหมาะสำหรับการสนทนากลุ่ม เช่น กิลด์ เพื่อน หรือปาร์ตี้
- ช่อง PRIVATEต้องการรหัสผ่านในการเข้าร่วม
การดำเนินงานช่อง
 การทำงานพื้นฐานของช่องทางมีดังนี้:
  - มีจุดเข้าและออกที่ชัดเจนสำหรับช่องทาง และเซิร์ฟเวอร์แชทให้การจัดการที่สอดคล้องกันในแต่ละจุด
- เมื่อมีการส่งข้อความไปยังช่องทาง ข้อความจะถูกส่งไปยังผู้ใช้ทั้งหมดในช่องทาง (ยกเว้นผู้ใช้ที่ถูกบล็อก)
- เฉพาะผู้เข้าร่วมช่องทางเท่านั้นที่สามารถส่งข้อความไปยังช่องทาง (ข้อความแจ้งเตือนเป็นข้อยกเว้น) 
 ต่อไปนี้อธิบายพฤติกรรมเมื่อใช้ API ช่องทาง
 การสร้างและการลบช่อง
  - คุณสามารถสร้างช่องได้โดยใช้ API สร้างช่อง หรือ สร้างช่อง 1:1。 
- ช่องจะถูกลบในกรณีต่อไปนี้: - เมื่อใช้ API ลบช่อง
- เมื่อเจ้าของช่องไม่ใช่ SYSTEMและไม่มีผู้เข้าร่วม ช่องจะถูกลบเป็นระยะ ๆ。
 
- หากช่องถูกลบในขณะที่มีผู้เข้าร่วม จะมีการส่งเหตุการณ์การลบช่องไปยังผู้เข้าร่วม。
การอัปเดตข้อมูลช่อง
  - คุณสามารถอัปเดตข้อมูลช่องได้โดยใช้ API อัปเดตช่อง。 - รายการที่สามารถอัปเดตได้: ชื่อช่อง, จำนวนสมาชิกสูงสุด, รหัสผ่าน, ความพร้อมใช้งานของประวัติการสนทนา
- หากคุณลดจำนวนสมาชิกสูงสุดต่ำกว่าจำนวนผู้เข้าร่วมในปัจจุบัน ผู้เข้าร่วมที่มีอยู่จะไม่ถูกลบออกโดยบังคับ
- ข้อมูลช่อง 1:1 (ONE_ON_ONE) ไม่สามารถอัปเดตได้。
 
สร้าง API ช่อง
 สร้างช่องใหม่
 หากพารามิเตอร์ในเนื้อหาคำขอ playerId ถูกระบุไว้ ผู้ใช้ที่มี playerId นั้นจะกลายเป็นเจ้าของช่องและจะเข้าร่วมช่องโดยอัตโนมัติ หากไม่มีการระบุ playerId เจ้าของช่องจะถูกตั้งค่าเป็น SYSTEM
 ประเภทของช่องทางต่อไปนี้จะถูกลบเป็นระยะๆ:
  - ช่องที่เจ้าของไม่ใช่ 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 ตัวอักษร) | string | Y | 
  | playerId | รหัสผู้เล่นของผู้สร้างช่อง | long | N | 
  | password | รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE)(สูงสุด 50 ตัวอักษร)
 | string | N | 
  | channelName | ชื่อช่อง (สูงสุด 50 ตัวอักษร)
 | string | Y | 
  | maxMemberCount | จำนวนผู้เข้าร่วมช่องสูงสุด (ตั้งแต่ 2 ถึง 5,000)
 | integer | Y | 
  | type | ประเภทช่อง ( PRIVATE,PUBLIC,GROUP) | string | Y | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ (ค่าเริ่มต้น:
 false) | boolean | N | 
  
 เนื้อหาการตอบกลับ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม | 
  | message | ข้อความผลลัพธ์ | สตริง | 
  | data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ | 
  
 Response body > data
    | Field name | Description | Type | 
    | channelId | รหัสช่อง | string | 
  | type | ประเภทช่อง ( PRIVATE,PUBLIC,GROUP) | string | 
  | gameIndex | Hive ดัชนีเกม | integer | 
  | owner | เจ้าของช่อง | string | 
  | channelName | ชื่อช่อง | string | 
  | maxMemberCount | จำนวนสูงสุดของผู้เข้าร่วมช่อง | integer | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ | boolean | 
  | regTime | วันที่และเวลาที่สร้างช่อง ( UTC+0มาตรฐาน, รูปแบบyyyy-MM-dd'T'HH:mm:ss.SSSZ) | string | 
  | regTimeMillis | วันที่และเวลาที่สร้างช่อง (UnixTimestamp มิลลิวินาที) | long | 
  
 ตัวอย่างคำขอ
 curl --request POST 'https://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",
    "channelName": "Open Chat Room",
    "maxMemberCount": 100,
    "type": "PUBLIC",
    "chatHistoryAllowed": true
}'
ตัวอย่างการตอบกลับ
 {
    "code": 0,
    "message": "Success.",
    "data": {
        "channelId": "open:12345",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "SYSTEM",
        "channelName": "Open Chat Room",
        "chatHistoryAllowed": true,
        "maxMemberCount": 100,
        "regTime": "2025-07-21T08:39:07.542913300Z",
        "regTimeMillis": 1753087147542
  }
}
สร้าง API ช่อง 1:1
 สร้างช่อง 1:1 และเข้าร่วมผู้ใช้ที่ตรงกับ playerId และ otherPlayerId ในข้อมูลคำขอไปยังช่อง 1:1 (ONE_ON_ONE) หากช่อง 1:1 (ONE_ON_ONE) มีอยู่แล้ว จะเข้าร่วมช่องที่มีอยู่
 ผู้ใช้แต่ละคนสามารถมีช่อง 1:1 ได้สูงสุด 200 ช่อง (ONE_ON_ONE).
 URL การร้องขอ
    | เซิร์ฟเวอร์ | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/1on1 | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/1on1 | 
  | HTTP METHOD | POST | 
  | CONTENT-TYPE | application/json | 
  
 พารามิเตอร์เส้นทาง
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | gameIndex | Hive ดัชนีเกม | จำนวนเต็ม | ใช่ | 
  
 พารามิเตอร์หัวเรื่อง
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API ( Bearer) | string | ใช่ | 
  | Content-Type | ประเภทของข้อมูลคำขอ ( application/json) | string | ใช่ | 
  
 เนื้อหาคำขอ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | playerId | รหัสผู้เล่น | long | Y | 
  | otherPlayerId | รหัสผู้เล่นฝ่ายตรงข้าม | long | Y | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ (ค่าเริ่มต้น: false) | boolean | N | 
  
 เนื้อหาการตอบกลับ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม | 
  | message | ข้อความผลลัพธ์ | สตริง | 
  | data | ข้อมูลการตอบกลับ | วัตถุ | 
  
 เนื้อหาการตอบกลับ > ข้อมูล
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | channelId | รหัสช่อง | string | 
  | type | ประเภทช่อง ( ONE_ON_ONE) | string | 
  | gameIndex | Hive ดัชนีเกม | integer | 
  | owner | เจ้าของช่อง | string | 
  | channelName | ชื่อช่อง | string | 
  | maxMemberCount | จำนวนสูงสุดของผู้เข้าร่วมช่อง | integer | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ | boolean | 
  | regTime | วันที่และเวลาสร้างช่อง ( UTC+0มาตรฐาน, รูปแบบyyyy-MM-dd'T'HH:mm:ss.SSSZ) | string | 
  | regTimeMillis | วันที่และเวลาสร้างช่อง (UnixTimestamp มิลลิวินาที) | long | 
  
 ตัวอย่างคำขอ
 curl --request POST 'https://api-chat.withhive.com/api/v1/games/1/channel/1on1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data'{
    "playerId": 1000,
    "otherPlayerId": 2000,
    "chatHistoryAllowed": false
}'
ตัวอย่างการตอบกลับ
 {
    "code": 0,
    "message": "Success.",
    "data": {
        "channelId": "V0FQBKSa9bWC33v",
        "type": "ONE_ON_ONE",
        "gameIndex": 1,
        "owner": "100",
        "channelName": "100&200",
        "chatHistoryAllowed": true,
        "maxMemberCount": 2,
        "regTime": "2025-07-18T09:37:36.697035738Z",
        "regTimeMillis": 1752831456697
    }
}
อัปเดตช่อง API
 อัปเดตช่องที่มีอยู่แล้ว
 เฉพาะช่องทางประเภทต่อไปนี้เท่านั้นที่สามารถอัปเดตได้:
  เมื่ออัปเดตจำนวนผู้เข้าร่วมสูงสุดในช่องแชท แม้ว่าจะมีผู้ใช้มากกว่าจำนวนสูงสุดใหม่ในช่องแชทในขณะนั้น ผู้ใช้ที่มีอยู่จะไม่ถูกลบออกโดยบังคับ ดังนั้น หากคุณลดจำนวนผู้เข้าร่วมสูงสุดให้ต่ำกว่าจำนวนปัจจุบัน จะมีสถานะชั่วคราวที่จำนวนผู้เข้าร่วมเกินจำนวนสูงสุด
 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 | PATCH | 
  | CONTENT-TYPE | application/json | 
  
 พารามิเตอร์เส้นทาง
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | gameIndex | Hive ดัชนีเกม | จำนวนเต็ม | ใช่ | 
  | channelId | รหัสช่อง | สตริง | ใช่ | 
  
 พารามิเตอร์หัวเรื่อง
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API ( Bearer) | สตริง | ใช่ | 
  | Content-Type | ประเภทของข้อมูลคำขอ ( application/json) | สตริง | ใช่ | 
  
 เนื้อหาคำขอ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | channelName | ชื่อช่อง (สูงสุด 50 ตัวอักษร)
 | string | N | 
  | password | รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE)(สูงสุด 50 ตัวอักษร)
 | string | N | 
  | maxMemberCount | จำนวนสูงสุดของผู้เข้าร่วมช่อง | integer | N | 
  | type | ประเภทช่อง ( PRIVATE,PUBLIC,GROUP) | string | N | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ (ค่าเริ่มต้น:
 false) | boolean | N | 
  
 เนื้อหาการตอบกลับ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม | 
  | message | ข้อความผลลัพธ์ | สตริง | 
  | data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ | 
  
 ตัวอย่างคำขอ
 curl --request PATCH 'https://api-chat.withhive.com/api/v1/games/1/channels/testchannel' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data'{
    "channelName": "Open Chat Room",
    "maxMemberCount": 100,
    "type": "PUBLIC",
    "chatHistoryAllowed": true
}'
ตัวอย่างการตอบกลับ
 {
    "code": 0,
    "message": "Success."
}
ลบช่อง API
 ลบช่องและส่งเหตุการณ์การลบช่องไปยังผู้ใช้ที่เข้าร่วมในช่อง
 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 | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม | 
  | 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."
}
รับ 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 | รหัสช่อง | string | 
  | type | ประเภทช่อง ( PRIVATE,PUBLIC,GROUP) | string | 
  | gameIndex | Hive ดัชนีเกม | integer | 
  | owner | รหัสผู้เล่นของเจ้าของช่อง | string | 
  | channelName | ชื่อช่อง | string | 
  | memberCount | จำนวนผู้เข้าร่วมปัจจุบันในช่อง | integer | 
  | maxMemberCount | จำนวนผู้เข้าร่วมสูงสุดในช่อง | integer | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ | boolean | 
  | regTime | วันที่และเวลาสร้างช่อง ( UTC+0มาตรฐาน, รูปแบบyyyy-MM-dd'T'HH:mm:ss.SSSZ) | string | 
  | regTimeMillis | วันที่และเวลาสร้างช่อง (UnixTimestamp Millisecond) | long | 
  
 เนื้อหาการตอบกลับ > ข้อมูล > หน้า
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | ขนาด | จำนวนรายการต่อหน้า | จำนวนเต็ม | 
  | หน้าปัจจุบัน | หมายเลขหน้าปัจจุบัน | จำนวนเต็ม | 
  | จำนวนทั้งหมด | จำนวนรายการทั้งหมด | จำนวนเต็ม | 
  | จำนวนหน้าทั้งหมด | จำนวนหน้าทั้งหมด | จำนวนเต็ม | 
  
 ตัวอย่างคำขอ
 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
    }
  }
}
รับ API ช่อง
 ดึงข้อมูลรายละเอียดเกี่ยวกับช่องเฉพาะ
 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) | สตริง | ใช่ | 
  
 เนื้อหาการตอบกลับ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม | 
  | message | ข้อความผลลัพธ์ | สตริง | 
  | data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ | 
  
 เนื้อหาการตอบกลับ > ข้อมูล
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | info | ข้อมูลช่อง | อ็อบเจ็กต์ | 
  | members | รายชื่อผู้เข้าร่วม | อาร์เรย์อ็อบเจ็กต์ | 
  
 เนื้อหาการตอบกลับ > ข้อมูล > ข้อมูล
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | channelId | รหัสช่อง | string | 
  | type | ประเภทช่อง ( PRIVATE,PUBLIC,GROUP,ONE_ON_ONE) | string | 
  | gameIndex | Hive ดัชนีเกม | integer | 
  | owner | เจ้าของช่อง | string | 
  | channelName | ชื่อช่อง | string | 
  | memberCount | จำนวนผู้เข้าร่วมปัจจุบันในช่อง | integer | 
  | maxMemberCount | จำนวนผู้เข้าร่วมสูงสุดในช่อง | integer | 
  | chatHistoryAllowed | ประวัติข้อความที่สามารถดูได้ | boolean | 
  | regTime | วันที่และเวลาการสร้างช่อง ( UTC+0มาตรฐาน, รูปแบบyyyy-MM-dd'T'HH:mm:ss.SSSZ) | string | 
  | regTimeMillis | วันที่และเวลาการสร้างช่อง (UnixTimestamp Millisecond) | long | 
  
 เนื้อหาการตอบกลับ > ข้อมูล > สมาชิก
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | playerId | รหัสผู้เล่น | 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
      },
      {
        "playerId": 2
      }
    ]
  }
}
รับสมาชิกช่อง API
 ดึงข้อมูลเกี่ยวกับผู้ใช้ที่เข้าร่วมในช่องทาง
 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) | สตริง | ใช่ | 
  
 เนื้อหาการตอบกลับ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม | 
  | message | ข้อความผลลัพธ์ | สตริง | 
  | data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ | 
  
 เนื้อหาการตอบกลับ > ข้อมูล
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | members | รายชื่อผู้เข้าร่วมช่อง | อาร์เรย์วัตถุ | 
  
 Response Body > data > สมาชิก
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
    | playerId | รหัสผู้เล่น | 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
      },
      {
        "playerId": 2
      }
    ]
  }
}
ป้อน API ช่อง
 อนุญาตให้ผู้ใช้เฉพาะเข้าร่วมช่องทาง
 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 | รหัสผู้เล่นของผู้ใช้ที่จะเข้าร่วม | 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 '{
    "playerId": 1001,
    "password": "guildPass123"
}'
ตัวอย่างการตอบกลับ
 {
    "code": 0,
    "message": "Success."
}
API ช่องทางออก
 อนุญาตให้ผู้ใช้ออกจากช่องทาง
 ช่องทางจะไม่ถูกลบหากเจ้าของออกไป เว้นแต่เจ้าของจะไม่ใช่ 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 | รหัสช่อง | สตริง | ใช่ | 
  
 พารามิเตอร์หัวเรื่อง
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | 
    | Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API ( Bearer) | string | Y | 
  | Content-Type | ประเภทของข้อมูลการร้องขอ ( application/json) | string | Y | 
  
 เนื้อหาคำขอ
    | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็นต้องใช้ | 
    | playerId | รหัสผู้เล่นของผู้ใช้ที่จะออก | 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."
}