ช่อง
คู่มือนี้อธิบายวิธีการใช้ 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."
}