ช่อง
คู่มือนี้อธิบายวิธีการใช้ API สำหรับการสร้างและลบช่อง, การแก้ไขข้อมูลช่อง, และการดึงข้อมูลรายการช่องและผู้เข้าร่วม
ภาพรวม
ช่องคือพื้นที่เชิงแนวคิดที่การสนทนาเกิดขึ้น และการสนทนาทั้งหมดในเกมจะดำเนินการภายในช่องต่างๆ
ส่วนนี้อธิบายเกี่ยวกับประเภทของช่องทางและพฤติกรรมของช่องทางที่รองรับโดย API.
ประเภทช่องทาง
ประเภทช่องทางที่สามารถสร้างได้ผ่าน API มีดังนี้:
| ประเภทช่องทาง | ความจุ | ช่องทางที่เข้าร่วมสูงสุด | ออกจากช่องทางเมื่อการเชื่อมต่อขาด | การใช้งานหลัก |
PUBLIC | 1 – 5,000 | สูงสุด 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 อัปเดตช่อง.
- ฟิลด์ที่สามารถแก้ไขได้: ชื่อช่อง, จำนวนสมาชิกสูงสุด, รหัสผ่าน, และความพร้อมใช้งานของประวัติการสนทนา
- แม้ว่าจะมีการเปลี่ยนจำนวนสมาชิกสูงสุดเป็น 50 ในขณะที่ช่องมีผู้เข้าร่วมอยู่แล้ว 100 คน สถานะของผู้เข้าร่วมที่มีอยู่จะไม่ได้รับผลกระทบ
- ข้อมูลช่อง 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 ตัวอักษร) | สตริง | ใช่ |
| playerId | รหัสผู้เล่นของผู้สร้างช่อง | ยาว | ไม่ |
| password | รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE) (สูงสุด 50 ตัวอักษร) | สตริง | ไม่ |
| channelName | ชื่อช่อง (สูงสุด 50 ตัวอักษร) | สตริง | ใช่ |
| maxMemberCount | จำนวนผู้เข้าร่วมช่องสูงสุด (ขั้นต่ำ 2 – สูงสุด 5,000) | จำนวนเต็ม | ใช่ |
| type | ประเภทช่อง (PRIVATE, PUBLIC, GROUP) | สตริง | ใช่ |
| chatHistoryAllowed | ว่าประวัติข้อความสามารถใช้งานได้หรือไม่ (ค่าเริ่มต้น: false) | บูลีน | ไม่ |
เนื้อหาการตอบกลับ
| ฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | วัตถุ |
Response body > data
| Field | 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 Millisecond) | 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 (ONE_ON_ONE) และเข้าร่วมผู้ใช้ที่ตรงกับ playerId และ otherPlayerId ในข้อมูลคำขอ
หากมีช่อง 1:1 ที่สร้างขึ้นก่อนหน้านี้อยู่แล้วกับผู้ใช้เดียวกัน ช่องที่มีอยู่จะถูกเข้าร่วมแทน
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) | สตริง | ใช่ |
| Content-Type | ประเภทข้อมูลคำขอ (application/json) | สตริง | ใช่ |
เนื้อหาคำขอ
| ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| channelId | รหัสช่อง (ตัวอักษรพิมพ์ใหญ่/พิมพ์เล็ก, ตัวเลข, และอักขระพิเศษบางตัว (-, ., _, ~, :) อนุญาต, สูงสุด 100 ตัวอักษร) | string | ใช่ |
| channelName | ชื่อช่อง (สูงสุด 50 ตัวอักษร) | string | ใช่ |
| playerId | รหัสผู้เล่น | long | ใช่ |
| otherPlayerId | รหัสผู้เล่นอื่น | long | ใช่ |
| chatHistoryAllowed | ว่าประวัติข้อความมีให้ใช้งานหรือไม่ (ค่าเริ่มต้น: false) | boolean | ไม่ |
เนื้อหาการตอบกลับ
| ฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | วัตถุ |
ร่างการตอบกลับ > ข้อมูล
| ฟิลด์ | คำอธิบาย | ประเภท |
| channelId | รหัสช่อง | สตริง |
| type | ประเภทช่อง (ONE_ON_ONE) | สตริง |
| gameIndex | ดัชนีเกม Hive | จำนวนเต็ม |
| owner | เจ้าของช่อง | สตริง |
| channelName | ชื่อช่อง | สตริง |
| maxMemberCount | จำนวนสูงสุดของผู้เข้าร่วมช่อง | จำนวนเต็ม |
| participants | รายชื่อผู้เข้าร่วม playerIds | อาร์เรย์ |
| chatHistoryAllowed | ว่าประวัติข้อความมีให้ใช้งานหรือไม่ | บูลีน |
| regTime | วันและเวลาที่สร้างช่อง (ตาม UTC+0, รูปแบบ: yyyy-MM-dd'T'HH:mm:ss.SSSZ) | สตริง |
| regTimeMillis | วันและเวลาที่สร้างช่อง (UnixTimestamp มิลลิวินาที) | ยาว |
ตัวอย่างคำขอ
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'{
"channelId": "1on1:test",
"channelName": "Test 1:1 Channel",
"playerId": 1000,
"otherPlayerId": 2000,
"chatHistoryAllowed": false
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success.",
"data": {
"channelId": "1on1:test",
"type": "ONE_ON_ONE",
"gameIndex": 1,
"owner": "1000",
"channelName": "Test 1:1 Channel",
"chatHistoryAllowed": false,
"maxMemberCount": 2,
"participants": [1000, 2000],
"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 |
เนื้อหาการตอบกลับ
| ฟิลด์ | คำอธิบาย | ประเภท |
| รหัส | รหัสผลลัพธ์ | จำนวนเต็ม |
| ข้อความ | ข้อความผลลัพธ์ | สตริง |
| ข้อมูล | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
ตัวอย่างคำขอ
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 info
],
"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 | รหัสช่อง | สตริง |
| type | ประเภทช่อง (PRIVATE, PUBLIC, GROUP, ONE_ON_ONE) | สตริง |
| gameIndex | ดัชนีเกม Hive | จำนวนเต็ม |
| owner | เจ้าของช่อง | สตริง |
| channelName | ชื่อช่อง | สตริง |
| memberCount | จำนวนผู้เข้าร่วมช่องปัจจุบัน | จำนวนเต็ม |
| maxMemberCount | จำนวนสูงสุดของผู้เข้าร่วมช่อง | จำนวนเต็ม |
| chatHistoryAllowed | ว่าประวัติข้อความสามารถใช้ได้หรือไม่ | บูลีน |
| regTime | วันและเวลาที่สร้างช่อง (ตาม UTC+0, รูปแบบ: yyyy-MM-dd'T'HH:mm:ss.SSSZ) | สตริง |
| regTimeMillis | วันและเวลาที่สร้างช่อง (UnixTimestamp มิลลิวินาที) | ยาว |
เนื้อหาการตอบกลับ > ข้อมูล > สมาชิก
| ฟิลด์ | คำอธิบาย | ประเภท |
| 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 | รายชื่อสมาชิกช่อง | อาร์เรย์วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล > สมาชิก
| ฟิลด์ | คำอธิบาย | ประเภท |
| 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) | สตริง | ใช่ |
| Content-Type | ประเภทข้อมูลคำขอ (application/json) | สตริง | ใช่ |
เนื้อหาคำขอ
| ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| 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) | สตริง | ใช่ |
| Content-Type | ประเภทข้อมูลคำขอ (application/json) | สตริง | ใช่ |
เนื้อหาคำขอ
| ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | รหัสผู้เล่นของผู้ใช้ที่จะออก | long | ใช่ |
เนื้อหาการตอบกลับ
| ฟิลด์ | คำอธิบาย | ประเภท |
| 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."
}