Http api
ภาพรวม
บริการแชทมีให้บริการผ่าน HTTP API แบ่งออกเป็น channel API, user API, และ message API.
- API ช่อง
- รับ API รายการช่องทั้งหมด
- รับ API ช่อง
- รับ API สมาชิกช่อง
- สร้าง API ช่อง
- ลบ API ช่อง
- เข้าร่วม API ช่อง
- ออกจาก API ช่อง
- API ผู้ใช้
- ออก API โทเค็นผู้ใช้
- รับ API ช่องที่ผู้ใช้เข้าร่วม
- รับ API รายการบล็อกผู้ใช้
- บล็อก API ผู้ใช้
- ยกเลิกบล็อก API ผู้ใช้
- API ข้อความ
- ส่ง API ข้อความประกาศช่อง
- ส่ง API ข้อความประกาศผู้ใช้
- ส่ง API ข้อความกำหนดเองช่อง
- ส่ง API ข้อความกำหนดเองผู้ใช้
- รับ API ประวัติข้อความช่อง
ข้อมูลพื้นฐาน
ส่วนนี้ให้ข้อมูลพื้นฐานที่คุณต้องรู้เมื่อใช้ HTTP API
ข้อกำหนดเบื้องต้น
ในการใช้ HTTP API คุณต้องการสิ่งต่อไปนี้:
- Hive certification key: โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API
- สามารถพบได้ที่ Hive Console > App Center > Project management > Game details > Basic information
- Game index: ดัชนีของเกมที่สร้างขึ้นใน Hive Console > App Center > Project management<
ประเภทช่องทาง
ช่องทางประเภทต่อไปนี้ถูกใช้เมื่อส่งผ่าน HTTP API
ประเภท | คำอธิบาย |
PUBLIC | ช่องที่ใครก็สามารถเข้าร่วมได้ |
PRIVATE | ช่องที่ต้องการรหัสผ่านในการเข้าร่วม |
GROUP | ช่องสำหรับผู้ใช้เฉพาะ (เช่น กิลด์) |
URL การร้องขอ
เซิร์ฟเวอร์ | URL |
LIVE | api-chat.withhive.com |
SANDBOX | sandbox-api-chat.withhive.com |
หัวข้อทั่วไป
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็นต้องใช้ |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | string | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | string | ใช่ |
รหัสการตอบกลับ
รหัสสถานะ HTTP | รหัส | ข้อความ | คำอธิบาย |
200 | 0 | สำเร็จ. | สำเร็จ |
400 | 100 | คำขอไม่ถูกต้อง. | คำขอไม่ถูกต้อง |
401 | 101 | โทเค็นไม่ถูกต้อง. | โทเค็นไม่ถูกต้อง |
403 | 102 | ห้ามเข้าถึง. | ไม่มีสิทธิ์ |
404 | 103 | ไม่พบ. | ไม่พบ |
405 | 104 | วิธีการไม่อนุญาต. | วิธีการไม่อนุญาต |
500 | 105 | ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน. | ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน |
- รหัสข้อผิดพลาดที่ละเอียด (400, 403)
รหัสสถานะ HTTP | รหัส | ข้อความ | คำอธิบาย |
400 | 200 | รหัสช่องซ้ำกัน. | รหัสช่องซ้ำกัน |
| 201 | ไม่พบช่องหรือถูกลบ. | ไม่พบช่องหรือถูกลบ |
| 202 | ช่องเต็ม. | ช่องเต็ม |
| 203 | รหัสผ่านช่องไม่ถูกต้อง. | รหัสผ่านช่องไม่ถูกต้อง |
| 204 | ขนาดข้อความเกินกำหนด. ขนาดสูงสุดคือ 200. | ขนาดข้อความเกินกำหนด (สูงสุด 200 ตัวอักษร) |
| 300 | ผู้ใช้ไม่อยู่ในเซสชัน. | ผู้ใช้ไม่อยู่ในเซสชัน (ไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์ Socket) |
| 301 | ผู้ใช้ไม่อยู่ในช่อง. | ผู้ใช้ไม่อยู่ในช่อง |
| 302 | ผู้ใช้มีอยู่ในช่องแล้ว. | ผู้ใช้มีอยู่ในช่องแล้ว |
| 303 | ผู้ใช้ถูกบล็อกแล้ว. | ผู้ใช้ถูกบล็อกแล้ว |
| 304 | รายการบล็อกเต็ม. ขนาดสูงสุดคือ 100. | รายการบล็อกเต็ม (สูงสุด 100 ผู้ใช้) |
| 305 | ผู้ใช้ไม่อยู่ในรายการบล็อก. | ผู้ใช้ไม่อยู่ในรายการบล็อก |
| 306 | ผู้ใช้ถูกบล็อก. | ผู้ใช้ถูกบล็อก |
| 307 | จำนวนช่องสูงสุดที่ผู้ใช้สามารถเข้าคือ 10. | เกินจำนวนช่องสูงสุดที่ผู้ใช้สามารถเข้าถึง (จำกัด 10) |
| 400 | ขนาดข้อความที่กำหนดเองเกินกำหนด. ขนาดสูงสุดคือ 8,000 ไบต์. | ขนาดเกินกำหนดสำหรับข้อความที่กำหนดเอง (สูงสุด 8,000 ไบต์) |
403 | 308 | ผู้ใช้ไม่ใช่เจ้าของช่อง. | ผู้ใช้ไม่ใช่เจ้าของช่อง |
ฟังก์ชัน Channel 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 ดัชนีเกม | จำนวนเต็ม | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็นต้องมี |
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 | รหัสช่อง | สตริง |
type | ประเภทช่อง (PRIVATE , PUBLIC , GROUP ) | สตริง |
gameIndex | ดัชนีเกม Hive | จำนวนเต็ม |
owner | รหัสผู้เล่นของเจ้าของช่อง | สตริง |
channelName | ชื่อช่อง | สตริง |
memberCount | จำนวนสมาชิกปัจจุบันในช่อง | จำนวนเต็ม |
maxMemberCount | จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง | จำนวนเต็ม |
chatHistoryAllowed | สามารถดูประวัติข้อความได้หรือไม่ | บูลีน |
regTime | วันที่และเวลาที่สร้างช่อง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | สตริง |
regTimeMillis | วันที่และเวลาที่สร้างช่อง (UnixTimestamp มิลลิวินาที) | ยาว |
เนื้อหาการตอบกลับ > ข้อมูล > หน้า
ฟิลด์ | คำอธิบาย | ประเภท |
ขนาด | จำนวนรายการต่อหน้า | จำนวนเต็ม |
หน้าปัจจุบัน | หมายเลขหน้าปัจจุบัน | จำนวนเต็ม |
จำนวนทั้งหมด | จำนวนรายการทั้งหมด | จำนวนเต็ม |
จำนวนหน้าทั้งหมด | จำนวนหน้าทั้งหมด | จำนวนเต็ม |
ตัวอย่างคำขอ
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
}
}
}
รับช่อง
ดึงข้อมูลรายละเอียดเกี่ยวกับช่องทาง
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 | ID ของช่องที่ต้องการดึงข้อมูล | สตริง | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
รหัส | รหัสการตอบกลับ | จำนวนเต็ม |
ข้อความ | ข้อความผลลัพธ์ | สตริง |
ข้อมูล | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
info | ข้อมูลช่อง | วัตถุ |
members | รายชื่อสมาชิก | อาร์เรย์วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
channelId | รหัสช่อง | สตริง |
type | ประเภทช่อง (PRIVATE , PUBLIC , GROUP ) | สตริง |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม |
owner | เจ้าของช่อง | สตริง |
channelName | ชื่อช่อง | สตริง |
memberCount | จำนวนสมาชิกปัจจุบันในช่อง | จำนวนเต็ม |
maxMemberCount | จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง | จำนวนเต็ม |
chatHistoryAllowed | ว่าประวัติข้อความสามารถดูได้หรือไม่ | บูลีน |
regTime | วันที่และเวลาการสร้างช่อง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | สตริง |
regTimeMillis | วันที่และเวลาการสร้างช่อง (UnixTimestamp มิลลิวินาที) | ยาว |
เนื้อหาการตอบกลับ > ข้อมูล > สมาชิก
ฟิลด์ | คำอธิบาย | ประเภท |
playerId | รหัสผู้เล่น | long |
connectedTime | วันที่และเวลาการเชื่อมต่อ (มาตรฐาน UTC+0 , รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | string |
connectedTimeMillis | วันที่และเวลาการเชื่อมต่อ (UnixTimestamp มิลลิวินาที) | 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,
"connectedTime": "2024-11-25T06:22:06.604Z",
"connectedTimeMillis": 1739328218507
},
{
"playerId": 2,
"connectedTime": "2024-11-25T06:22:16.233Z",
"connectedTimeMillis": 1731306364351
}
]
}
}
รับสมาชิกช่อง
เรียกข้อมูลเกี่ยวกับสมาชิกของช่อง
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 | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
data | ข้อมูลการตอบกลับ | วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
members | รายชื่อสมาชิกช่อง | อาร์เรย์วัตถุ |
ร่างตอบกลับ > ข้อมูล > สมาชิก
ฟิลด์ | คำอธิบาย | ประเภท |
playerId | รหัสผู้เล่น | long |
connectedTime | วันที่และเวลาการเชื่อมต่อ (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | string |
connectedTimeMillis | วันที่และเวลาการเชื่อมต่อ (UnixTimestamp มิลลิวินาที) | 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,
"connectedTime": "2024-11-25T06:22:06.604Z",
"connectedTimeMillis": 1739328218507
},
{
"playerId": 2,
"connectedTime": "2024-11-25T06:22:16.233Z",
"connectedTimeMillis": 1731306364351
}
]
}
}
สร้างช่อง
สร้างช่องทางใหม่
หากคุณป้อน playerId
ในเนื้อหาของคำขอ ผู้ใช้ที่ตรงกับ 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 ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จะถูกส่งเมื่อทำการขอสร้างช่องทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
channelId | รหัสช่อง (สามารถใช้ตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก, ตัวเลข, และอักขระพิเศษบางตัว (- , . , _ , ~ , : ), สูงสุด 100 ตัวอักษร) | สตริง | ใช่ |
playerId | รหัสผู้เล่นของผู้สร้างช่อง | ยาว | ไม่ |
password | รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE ) (สูงสุด 50 ตัวอักษร) | สตริง | ไม่ |
channelName | ชื่อช่อง (สูงสุด 50 ตัวอักษร) | สตริง | ใช่ |
maxMemberCount | จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง (ขั้นต่ำ 2 ~ สูงสุด 5,000) | จำนวนเต็ม | ใช่ |
type | ประเภทช่อง (PRIVATE , PUBLIC , GROUP ) | สตริง | ใช่ |
chatHistoryAllowed | ว่าสามารถดูประวัติข้อความได้หรือไม่ (ค่าเริ่มต้นคือ false) | บูลีน | ไม่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
รหัส | รหัสการตอบกลับ | จำนวนเต็ม |
ข้อความ | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
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": "Open Chat Room",
"maxMemberCount": 100,
"type": "PUBLIC",
"chatHistoryAllowed": true
}'
ตัวอย่างการตอบกลับ
{
"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 | ID ของช่องที่จะลบ | สตริง | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็นต้องใช้ |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
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."
}
เข้าสู่ช่อง
กรุณาเข้าสู่ช่องทาง.
จำนวนช่องสูงสุดที่สามารถกรอกได้คือ 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 ดัชนีเกม | จำนวนเต็ม | ใช่ |
channelId | ID ของช่องที่ต้องการเข้า | สตริง | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จำเป็นเมื่อขอเข้าช่องทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
playerId | รหัสผู้เล่นของผู้ใช้ที่จะถูกป้อน | long | ใช่ |
password | รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE ) | 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 '{
"playerId": 1001,
"password": "guildPass123"
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success."
}
ช่องทางออก
ออกจากช่องทาง.
แม้ว่าเจ้าของช่องจะออกจากระบบ ช่องจะยังคงอยู่ อย่างไรก็ตาม หากเจ้าของไม่ใช่ 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 | ID ของช่องที่ต้องการออก | สตริง | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จำเป็นเมื่อขอออกจากช่องทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็นต้องมี |
playerId | รหัสผู้เล่นของผู้ใช้ที่จะออก | long | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
รหัส | รหัสการตอบกลับ | จำนวนเต็ม |
ข้อความ | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
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."
}
ฟังก์ชัน API ของผู้ใช้
ส่วนนี้อธิบายเกี่ยวกับคำขอ API, การตอบสนอง, และโค้ดตัวอย่างสำหรับแต่ละฟังก์ชันของ API ผู้ใช้ที่ใช้ในบริการแชท
ปัญหาสร้างโทเค็นผู้ใช้
ออกโทเค็นการตรวจสอบสิทธิ์สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ Socket.
เชื่อมต่อกับที่อยู่เซิร์ฟเวอร์ 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 | รหัสผู้เล่น | ยาว | ใช่ |
พารามิเตอร์หัวข้อ
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็นต้องใช้ |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
รหัส | รหัสการตอบกลับ | จำนวนเต็ม |
ข้อความ | ข้อความผลลัพธ์ | สตริง |
ข้อมูล | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
gameIndex | ดัชนีเกม Hive | จำนวนเต็ม |
socketAddress | ที่อยู่เซิร์ฟเวอร์ซ็อกเก็ต | สตริง |
token | โทเค็นที่ออก | สตริง |
ตัวอย่างคำขอ
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 ดัชนีเกม | จำนวนเต็ม | ใช่ |
playerId | รหัสผู้เล่น | ยาว | ใช่ |
พารามิเตอร์หัวข้อ
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการรับรองความถูกต้องสำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม |
playerId | รหัสผู้เล่น | ยาว |
channels | รายการช่อง | อาร์เรย์วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล > ช่องทาง
ฟิลด์ | คำอธิบาย | ประเภท |
channelId | รหัสช่อง | สตริง |
type | ประเภทช่อง (PRIVATE , PUBLIC , GROUP ) | สตริง |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม |
owner | เจ้าของช่อง | สตริง |
channelName | ชื่อช่อง | สตริง |
memberCount | จำนวนสมาชิกปัจจุบันในช่อง | จำนวนเต็ม |
maxMemberCount | จำนวนสมาชิกสูงสุดที่อนุญาตในช่อง | จำนวนเต็ม |
chatHistoryAllowed | สามารถดูประวัติข้อความได้หรือไม่ | บูลีน |
regTime | วันที่และเวลาสร้างช่อง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | สตริง |
regTimeMillis | วันที่และเวลาสร้างช่อง (UnixTimestamp มิลลิวินาที) | ยาว |
ตัวอย่างการร้องขอ
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",
"memberCount": 1,
"maxMemberCount": 50,
"chatHistoryAllowed": true,
"regTime": "2023-12-19T15:01:01.004Z",
"regTimeMillis": 1731306364351
},
{
"channelId": "open:67890",
"type": "PUBLIC",
"gameIndex": 1,
"owner": "SYSTEM",
"channelName": "Open Chat Room",
"memberCount": 2,
"maxMemberCount": 100,
"chatHistoryAllowed": true,
"regTime": "2023-12-20T10:15:30.123Z",
"regTimeMillis": 1731302348750
}
// ... channels
]
}
}
รับรายการบล็อกผู้ใช้
ดึงรายการผู้ใช้ที่ถูกบล็อกโดยผู้ใช้
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 ดัชนีเกม | สตริง | ใช่ |
playerId | รหัสผู้เล่น | ยาว | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม |
playerId | รหัสผู้เล่น | ยาว |
blockedUsers | รายชื่อผู้ใช้ที่ถูกบล็อก | อาร์เรย์วัตถุ |
Response body > data > blockedUsers
ฟิลด์ | คำอธิบาย | ประเภท |
blockedPlayerId | รหัสผู้เล่นของผู้ใช้ที่ถูกบล็อก | long |
blockedTime | วันที่และเวลาที่ผู้ใช้ถูกบล็อก (มาตรฐาน UTC+0 , รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | string |
blockedTimeMillis | วันที่และเวลาที่ผู้ใช้ถูกบล็อก (UnixTimestamp Millisecond) | long |
ตัวอย่างคำขอ
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,
"blockedUsers": [
{
"blockedPlayerId": 1002,
"blockedTime": "2023-12-20T10:15:30.123Z",
"blockedTimeMillis": 1739329550811
},
{
"blockedPlayerId": 1003,
"blockedTime": "2023-12-21T08:45:12.456Z",
"blockedTimeMillis": 1739329553137
},
// ... Blocked users 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 | สตริง | ใช่ |
playerId | รหัสผู้เล่น | ยาว | ใช่ |
blockPlayerId | รหัสผู้เล่นที่ต้องการบล็อก | ยาว | ใช่ |
พารามิเตอร์หัวข้อ
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
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 ดัชนีเกม | สตริง | ใช่ |
playerId | รหัสผู้เล่น | ยาว | ใช่ |
blockedPlayerId | รหัสผู้เล่นที่จะปลดบล็อก | ยาว | ใช่ |
พารามิเตอร์หัวข้อ
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
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."
}
ฟังก์ชัน Message API
API สำหรับการส่งการแจ้งเตือนหรือข้อความที่กำหนดเอง หรือการเรียกดูประวัติข้อความสำหรับช่องทางเฉพาะ
ส่งข้อความแจ้งเตือน
ส่งข้อความแจ้งเตือนไปยังช่องเฉพาะหรือผู้ใช้ทั้งหมด
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 ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จะถูกส่งเมื่อขอส่งข้อความแจ้งเตือน
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
channelId | รหัสของช่องทางในการส่งข้อความ | สตริง | N |
langCode | รหัสภาษาของ Hive สำหรับผู้ใช้ที่จะได้รับข้อความ (ส่งโดยไม่คำนึงถึงภาษา หากไม่ได้ระบุ) (อิงตาม ISO 639 alpha-2 ใช้แท็ก Script เพื่อแยกแยะภาษาที่ไม่ได้จัดประเภทตาม ISO 639 alpha-2) | สตริง | N |
message | เนื้อหาของข้อความแจ้งเตือนที่จะส่ง (สูงสุด 200 ตัวอักษร) | สตริง | Y |
channelId
หากมีการระบุ channelId
ข้อความ Channel notice message จะถูกส่งไปยังผู้ใช้ทั้งหมดที่เชื่อมต่อกับช่องทางนั้น
หาก channelId
ไม่ได้ถูกระบุ ข้อความ User notice message จะถูกส่งไปยังผู้ใช้ทุกคนที่เชื่อมต่อกับแอปที่มี gameIndex
ที่ตรงกัน
รหัสภาษา
หาก langCode
ไม่ได้ถูกระบุ ข้อความจะถูกส่งไปยังผู้ใช้ทั้งหมดโดยไม่คำนึงถึงภาษา
หาก langCode
ถูกระบุ ข้อความจะถูกส่งไปยังผู้ใช้ที่ langCode
ตรงกับค่าเท่านั้น ตัวอย่างเช่น หาก langCode
เป็น en
ข้อความแจ้งเตือนจะถูกส่งไปยัง ผู้ใช้ที่ Request body langCode
เป็น en
เมื่อเชื่อมต่อกับไคลเอนต์
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
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",
"langCode": "en",
"message": "Server maintenance. Please reconnect later."
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success."
}
ส่งข้อความแจ้งเตือนผู้ใช้
ส่งข้อความ User notice message ไปยังผู้ใช้
URL ที่ร้องขอ
เซิร์ฟเวอร์ | URL |
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId} |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId} |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
พารามิเตอร์เส้นทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม | ใช่ |
playerId | Hive รหัสผู้เล่น | ยาว | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จะถูกส่งเมื่อขอส่งข้อความแจ้งเตือนไปยังผู้ใช้
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
langCode | รหัสภาษาของ Hive ของผู้ใช้ที่จะได้รับข้อความ (ส่งไม่คำนึงถึงภาษา หากไม่ได้ระบุ) (ตาม ISO 639 alpha-2 ใช้แท็ก Script เพื่อแยกแยะภาษาที่ไม่ได้จัดประเภทตาม ISO 639 alpha-2) | สตริง | ไม่ |
message | เนื้อหาของข้อความประกาศที่จะส่ง (สูงสุด 200 ตัวอักษร) | สตริง | ใช่ |
null หาก langCode
ไม่ได้ถูกระบุ ข้อความจะถูกส่งไปยังผู้ใช้โดยไม่คำนึงถึงภาษา
หาก langCode
ถูกระบุ ข้อความแจ้งเตือนจะถูกส่งเฉพาะเมื่อ langCode
ในคำขอของไคลเอนต์เมื่อเชื่อมต่อเข้ากับ API นี้ตรงกับ langCode
ของ API นี้ ตัวอย่างเช่น หากไคลเอนต์ของ playerId=1111
เชื่อมต่อด้วย langCode=en
และ API นี้ถูกเรียกด้วย playerId=1111, langCode=ja
ข้อความแจ้งเตือนจะไม่ถูกส่งไปยังผู้ใช้รายนี้
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice/users/123123' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"langCode": "en",
"message": "This is a notice message for user 123123."
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success."
}
ส่งข้อความที่กำหนดเองในช่อง
ส่งข้อความที่กำหนดเองไปยังผู้ใช้ทั้งหมดที่เข้าร่วมในช่อง
URL ที่ร้องขอ
เซิร์ฟเวอร์ | URL |
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId} |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId} |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
พารามิเตอร์เส้นทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม | ใช่ |
channelId | ID ของช่องทางในการส่งข้อความ | สตริง | ใช่ |
พารามิเตอร์หัวข้อ
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จะถูกส่งเมื่อทำการขอส่งข้อความที่กำหนดเอง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
message | เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 standard) (สูงสุด 8,000 ไบต์) | string | Y |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/channels/public:123' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"message": "This is a custom message."
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success."
}
ส่งข้อความที่กำหนดเองให้ผู้ใช้
ส่งข้อความที่กำหนดเองไปยังผู้ใช้
URL การร้องขอ
เซิร์ฟเวอร์ | URL |
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
พารามิเตอร์เส้นทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม | ใช่ |
พารามิเตอร์หัวข้อ
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
Content-Type | ประเภทของข้อมูลคำขอ (application/json ) | สตริง | ใช่ |
เนื้อหาคำขอ
ข้อมูลที่จะถูกส่งเมื่อทำการขอส่งข้อความที่กำหนดเองไปยังผู้ใช้
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
playerIds | รายการของตัวระบุบัญชีที่จะได้รับข้อความ รายการ ID ผู้เล่น (สูงสุด 10 ผู้ใช้) | long array | ใช่ |
message | เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 standard) (สูงสุด 8,000 ไบต์) | string | ใช่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
code | รหัสการตอบกลับ | จำนวนเต็ม |
message | ข้อความผลลัพธ์ | สตริง |
ตัวอย่างคำขอ
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/users' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"playerIds": [
123123
],
"message": "This is a custom message."
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success."
}
รับประวัติข้อความช่อง
ดึงประวัติข้อความของช่อง ประวัติข้อความของช่องจะถูกจัดเตรียมด้วยการแบ่งหน้าแบบใช้เคอร์เซอร์ และสามารถดึงประวัติข้อความจาก 30 วันที่ผ่านมาเท่านั้น API นี้สามารถใช้ได้เฉพาะเมื่อการตั้งค่าช่อง เปิดใช้งานการดูประวัติการสนทนาก่อนหน้า ประวัติข้อความของช่องที่ได้รับในคำตอบ API อาจรวมถึงข้อความจาก ผู้ใช้ที่ถูกบล็อก
การแบ่งหน้า: ขนาดและดัชนี
การแบ่งหน้าโดยใช้พารามิเตอร์การค้นหา index
จะถูกจัดเตรียมไว้ ค่าเริ่มต้นของ index
คือไม่มี และหากมีการส่งคำขอโดยไม่มี index
ข้อความล่าสุดจะถูกดึงข้อมูลตาม size
ตัวอย่างเช่น หากเรียก API ด้วย size=5
โดยไม่มี index
จะส่งคืนประวัติข้อความ 5 รายการล่าสุดพร้อมกับ nextIndex
(เช่น 68009c30780e4f2d9830d8a0
)
จากนั้น หากมีการเรียก API ด้วย index=68009c30780e4f2d9830d8a0
และ size=5
ข้อความ 5 ข้อความที่เกิดขึ้นก่อนข้อความสุดท้ายที่ส่งคืนจะถูกเรียกคืน
การแบ่งหน้า: มีถัดไป
หากค่าการตอบกลับ hasNext
เป็น true
จะมีประวัติข้อความเพิ่มเติมให้ใช้งาน กล่าวอีกนัยหนึ่งคือ nextIndex
ที่ได้รับในคำตอบสามารถใช้เป็น index
เพื่อดึงประวัติข้อความก่อนหน้าของช่องทางเพิ่มเติมได้
URL ที่ร้องขอ
เซิร์ฟเวอร์ | URL |
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages |
HTTP METHOD | GET |
พารามิเตอร์เส้นทาง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม | ใช่ |
channelId | รหัสของช่องที่ต้องการดึงข้อมูล | จำนวนเต็ม | ใช่ |
พารามิเตอร์หัวเรื่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer ) | สตริง | ใช่ |
พารามิเตอร์การค้นหา
ข้อมูลสตริงคำถามที่จำเป็นเมื่อขอเรียกประวัติข้อความช่อง
ฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
size | ขนาดของประวัติช่อง (ขั้นต่ำ 1 ~ สูงสุด 50) | จำนวนเต็ม | ใช่ |
index | ดัชนีที่ใช้สำหรับการดึงข้อมูล (ดึงข้อความล่าสุดหากไม่ได้ระบุ) | สตริง | ไม่ |
เนื้อหาการตอบกลับ
ฟิลด์ | คำอธิบาย | ประเภท |
รหัส | รหัสการตอบกลับ | จำนวนเต็ม |
ข้อความ | ข้อความผลลัพธ์ | สตริง |
ข้อมูล | ข้อมูลการตอบกลับ | วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล
ฟิลด์ | คำอธิบาย | ประเภท |
hasNext | ว่ามีข้อมูลเพิ่มเติมที่สามารถดึงมาได้หรือไม่ | boolean |
nextIndex | ดัชนีถัดไปที่ใช้สำหรับการดึงข้อมูล | string |
content | ประวัติข้อความช่องทาง | อาร์เรย์วัตถุ |
เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา
ฟิลด์ | คำอธิบาย | ประเภท |
gameIndex | Hive ดัชนีเกม | จำนวนเต็ม |
from | ตัวระบุของบัญชีที่ได้รับข้อความ รหัสผู้เล่น | ยาว |
extraData | ข้อมูลผู้ใช้งานเพิ่มเติม (UTF-8 มาตรฐาน) (สูงสุด 256 ไบต์) | สตริง |
to | รหัสของช่องทางที่ข้อความถูกส่งไป | สตริง |
message | เนื้อหาข้อความ | สตริง |
langCode | Hive รหัสภาษา (ตามมาตรฐาน ISO 639 alpha-2, ใช้แท็กสคริปต์เพื่อแยกแยะภาษาที่ไม่ได้จัดประเภทโดย ISO 639 alpha-2) | สตริง |
timestamp | วันที่และเวลาที่ข้อความถูกส่ง (UTC+0 มาตรฐาน, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ ) | สตริง |
timestampMillis | วันที่และเวลาที่ข้อความถูกส่ง (UnixTimestamp มิลลิวินาที) | ยาว |
ตัวอย่างคำขอ
curl --request GET 'https://test-api-chat.withhive.com/api/v1/games/1/channels/open:1/messages?size=50' \
--header 'Authorization: hivechat 005056fffea3fd10-000400fd-00000797-f67881178d98d1cd-64ae9a76'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success.",
"data": {
"hasNext": true,
"nextIndex": "67c7d83336af25202c1c0ad4",
"content": [
// size=50이므로 아래와 같은 객체들을 50개 반환함.
{
"gameIndex": 1,
"from": 1111112,
"extraData": "Kim Hive",
"to": "open:10",
"message": "zzz",
"langCode": "ko",
"timestamp": "2025-03-05T04:50:59.757Z",
"timestampMillis": 1741150259757
},
{
"gameIndex": 1,
"from": 1111111,
"extraData": null,
"to": "open:10",
"message": "Hive2",
"langCode": "ko",
"timestamp": "2025-03-05T04:51:01.689Z",
"timestampMillis": 1741150261689
},
]
}
}