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 |
รหัสการตอบกลับ
รหัสสถานะ 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."
}