HTTP API
ภาพรวม
เรามีบริการแชทผ่าน HTTP ซึ่งประกอบด้วย 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 ดึงข้อความช่อง
ข้อมูลพื้นฐาน
เมื่อใช้ API HTTP เราจะให้ข้อมูลพื้นฐานที่คุณต้องการทราบโดยทั่วไป
การเตรียมพจนานุกรม
ในการใช้ HTTP API คุณต้องเตรียมรายการต่อไปนี้
- Hive คีย์รับรอง: โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API
- สามารถตรวจสอบได้ใน Hive Console > App Center > Project Management > Game Details > Basic Information
- ดัชนีเกม: ดัชนีของเกมที่สร้างขึ้นใน Hive Console > App Center > Project Management
ประเภทช่องทาง
ประเภทช่องทางที่ใช้เมื่อส่ง API HTTP มีดังนี้
| ประเภท | คำอธิบาย |
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 | รหัสช่องสำหรับการค้นหาช่อง | 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 | รหัสผู้เล่นของเจ้าของช่อง Hive | สตริง |
| 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": "오픈 채팅방",
"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
}
}
}
การค้นหาช่อง
กำลังดึงรายละเอียดช่องทาง
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) | string | Y |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
ร่างการตอบกลับ > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| info | ข้อมูลช่อง | วัตถุ |
| members | รายชื่อผู้เข้าร่วม | อาร์เรย์วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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 |
เนื้อหาการตอบกลับ > ข้อมูล > สมาชิก
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| playerId | Hive รหัสผู้เล่น | long |
| connectedTime | เวลาการเชื่อมต่อ (ตาม UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) | string |
| connectedTimeMillis | เวลาการเชื่อมต่อ (Unix Timestamp Millisecond) | 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": "오픈채팅방",
"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 | รหัสช่องที่ต้องการค้นหา | สตริง | ใช่ |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| members | รายชื่อผู้เข้าร่วมช่อง | อาร์เรย์วัตถุ |
ร่างการตอบกลับ > ข้อมูล > สมาชิก
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| playerId | Hive รหัสผู้เล่น | long |
| connectedTime | เวลาเชื่อมต่อ (ตาม UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) | string |
| connectedTimeMillis | เวลาเชื่อมต่อ (Unix Timestamp Millisecond) | 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) | string | Y |
| Content-Type | ประเภทของข้อมูลที่ร้องขอ (application/json) | string | Y |
เนื้อหาคำขอ
นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอสร้างช่องทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| channelId | รหัสช่อง (ตัวอักษรภาษาอังกฤษ, ตัวเลข, และอักขระพิเศษบางตัว (-, ., _, ~, :) ที่อนุญาต, สูงสุด 100 ตัวอักษร) | สตริง | ใช่ |
| playerId | รหัสผู้เล่นของ Hive ของผู้สร้างช่อง | ยาว | ไม่ |
| password | รหัสผ่าน (จำเป็นหากช่องเป็น PRIVATE) (สูงสุด 50 ตัวอักษร) | สตริง | ไม่ |
| channelName | ชื่อช่อง (สูงสุด 50 ตัวอักษร) | สตริง | ใช่ |
| maxMemberCount | จำนวนสูงสุดของผู้เข้าร่วมในช่อง (ขั้นต่ำ 2 ถึงสูงสุด 5,000) | จำนวนเต็ม | ใช่ |
| type | ประเภทช่อง (PRIVATE, PUBLIC, GROUP) | สตริง | ใช่ |
| chatHistoryAllowed | ว่าสามารถดูประวัติข้อความได้หรือไม่ (ค่าเริ่มต้นคือ false) | บูลีน | ไม่ |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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",
"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 | รหัสช่องที่ต้องการลบ | สตริง | ใช่ |
พารามิเตอร์หัวข้อ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| 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."
}
เข้าสู่ช่อง
กำลังเพิ่มผู้ใช้เข้าสู่ช่องทาง.
จำนวนช่องสูงสุดที่สามารถกรอกได้คือ 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 | รหัสช่อง | สตริง | ใช่ |
พารามิเตอร์หัวข้อ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
| Content-Type | ประเภทของข้อมูลที่ส่งในคำขอ (application/json) | string | Y |
เนื้อหาคำขอ
นี่คือข้อมูลที่จำเป็นเมื่อขอเข้าช่องทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | รหัสผู้เล่นของผู้ใช้ที่จะได้รับอนุญาต Hive | 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."
}
ช่องทางออก
กำลังลบผู้ใช้ที่เข้าร่วมช่อง ช่องจะยังคงอยู่แม้เจ้าของช่องจะออกไป ช่องที่ไม่มีผู้เข้าร่วมซึ่งเจ้าของช่องไม่ใช่ 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 | ใช่ |
| Content-Type | ประเภทของข้อมูลคำขอ (application/json) | string | ใช่ |
เนื้อหาคำขอ
นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอออกจากช่องทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | ID ผู้เล่นของผู้ใช้ที่จะถูกลบ Hive | 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."
}
ฟีเจอร์ API ของผู้ใช้
นี่อธิบายเกี่ยวกับคำขอและการตอบสนอง API สำหรับ API ผู้ใช้ที่ใช้ในบริการแชท พร้อมกับตัวอย่างโค้ด
การออกโทเค็นผู้ใช้
การออกโทเค็นการตรวจสอบสิทธิ์สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ซ็อกเก็ต
เชื่อมต่อกับที่อยู่เซิร์ฟเวอร์ 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 | Hive รหัสผู้เล่น | ยาว | ใช่ |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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 | Hive รหัสผู้เล่น | ยาว | ใช่ |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| gameIndex | Hive ดัชนีเกม | integer |
| playerId | Hive รหัสผู้เล่น | long |
| channels | รายการช่องทาง | object array |
เนื้อหาการตอบกลับ > ข้อมูล > ช่องทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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://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": "길드 채팅방",
"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": "오픈 채팅방",
"memberCount": 2,
"maxMemberCount": 100,
"chatHistoryAllowed": true,
"regTime": "2023-12-20T10:15:30.123Z",
"regTimeMillis": 1731302348750
}
// ... 채널
]
}
}
การดึงรายการบล็อกผู้ใช้
กำลังดึงรายการผู้ใช้ที่ถูกบล็อกโดยผู้ใช้
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 | Hive รหัสผู้เล่น | long | Y |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | ข้อความผลลัพธ์ | สตริง |
| data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| gameIndex | Hive ดัชนีเกม | จำนวนเต็ม |
| playerId | Hive รหัสผู้เล่น | ยาว |
| blockedUsers | รายชื่อที่ถูกบล็อก | อาร์เรย์วัตถุ |
เนื้อหาการตอบกลับ > ข้อมูล > ผู้ใช้ที่ถูกบล็อก
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| blockedPlayerId | รหัสผู้เล่นของผู้ใช้ที่ถูกบล็อก Hive | long |
| blockedTime | เวลาที่ถูกบล็อก (ตาม UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) | string |
| blockedTimeMillis | เวลาที่ถูกบล็อก (Unix Timestamp 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
},
// ... 차단 목록
]
}
}
User block
การบล็อกผู้ใช้อื่น นี่คือฟีเจอร์ที่จำกัดการส่งและรับข้อความแบบเรียลไทม์
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 | Hive รหัสผู้เล่น | long | Y |
| blockPlayerId | รหัสผู้เล่นที่ถูกบล็อก Hive | long | Y |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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 | string | Y |
| playerId | ID ผู้เล่น Hive | long | Y |
| blockedPlayerId | ID ผู้เล่น Hive ที่จะปลดบล็อก | long | Y |
พารามิเตอร์ส่วนหัว
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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) | string | ใช่ |
| Content-Type | ประเภทของข้อมูลคำขอ (application/json) | string | ใช่ |
เนื้อหาคำขอ
นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอส่งข้อความแจ้งเตือน
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| channelId | รหัสช่องทางในการส่งข้อความ (หากไม่ระบุ ให้ส่งไปยังทุกช่องทาง) | สตริง | N |
| langCode | รหัสภาษาของผู้ใช้ Hive ที่จะส่งข้อความ (หากไม่ระบุ ให้ส่งโดยไม่คำนึงถึงภาษา) (ตาม ISO 639 alpha-2, ภาษาใด ๆ ที่ไม่แยกตาม ISO 639 alpha-2 ควรแยกด้วยแท็ก Script) | สตริง | N |
| message | เนื้อหาของข้อความประกาศที่จะส่ง (สูงสุด 200 ตัวอักษร) | สตริง | Y |
Channelid
หากไม่มี channelId พารามิเตอร์ Path gameIndex จะส่งข้อความไปยังช่องทั้งหมดที่มีอยู่ในแอป
รหัสภาษา
หาก 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": "서버 점검이 있습니다. 잠시 후 다시 접속해 주세요."
}'
ตัวอย่างการตอบกลับ
{
"code": 0,
"message": "Success."
}
ข้อความแจ้งเตือนผู้ใช้กำลังส่ง
กำลังส่งข้อความแจ้งเตือนไปยังผู้ใช้
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) | string | ใช่ |
| Content-Type | ประเภทของข้อมูลคำขอ (application/json) | string | ใช่ |
เนื้อหาคำขอ
นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอส่งข้อความแจ้งเตือน
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| langCode | รหัสภาษา Hive ของผู้ใช้ที่ข้อความจะถูกส่งไป (ส่งไม่คำนึงถึงภาษา หากไม่ได้ระบุ) (อิงตาม ISO 639 alpha-2, ภาษาใด ๆ ที่ไม่แยกแยะโดย ISO 639 alpha-2 ควรแยกด้วยแท็ก Script) | สตริง | N |
| message | เนื้อหาของข้อความการแจ้งเตือนที่จะส่ง (สูงสุด 200 ตัวอักษร) | สตริง | Y |
รหัสภาษา
หากไม่มี langCode มันจะส่งข้อความไปยังผู้ใช้ playerId โดยไม่คำนึงถึงภาษา
หากมี langCode ข้อความการแจ้งเตือนผู้ใช้จะถูกส่งเฉพาะเมื่อ langCode ในร่างคำขอ API ตรงกับ langCode ในร่างคำขอเมื่อไคลเอนต์เชื่อมต่อ ตัวอย่างเช่น หากผู้ใช้ที่มี 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": "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 | รหัสช่องทางในการรับข้อความ | สตริง | ใช่ |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
| Content-Type | ประเภทของข้อมูลคำขอ (application/json) | string | Y |
เนื้อหาคำขอ
นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอส่งข้อความที่กำหนดเอง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| message | เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 based) (สูงสุด 8,000 ไบต์) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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": "커스텀 메시지입니다."
}'
ตัวอย่างการตอบกลับ
{
"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) | string | ใช่ |
| Content-Type | ประเภทของข้อมูลคำขอ (application/json) | string | ใช่ |
เนื้อหาคำขอ
นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอส่งข้อความที่กำหนดเอง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerIds | คอลเลกชันของตัวระบุบัญชีเพื่อรับข้อความ Hive รายการ ID ของผู้เล่น (สูงสุด 10) | อาร์เรย์ยาว | ใช่ |
| message | เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 based) (สูงสุด 8,000 ไบต์) | สตริง | ใช่ |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| 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": "커스텀 메시지입니다."
}'
ตัวอย่างการตอบกลับ
{
"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 | รหัสช่องที่ใช้ในการค้นหา | จำนวนเต็ม | ใช่ |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| | | |
พารามิเตอร์การค้นหา
นี่คือข้อมูลสตริงคำค้นที่จำเป็นเมื่อขอการดึงข้อความช่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| size | ขนาดประวัติช่อง (ขั้นต่ำ 1 ~ สูงสุด 50) | integer | ใช่ |
| index | ดัชนีที่ใช้สำหรับการดึงข้อมูล (หากไม่ระบุ จะดึงข้อความล่าสุด) | string | ไม่ |
เนื้อหาการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| code | รหัสผลลัพธ์การตอบกลับ | จำนวนเต็ม |
| message | คำอธิบายผลลัพธ์ข้อความ | สตริง |
| data | ข้อมูลการตอบกลับ | อ็อบเจ็กต์ |
เนื้อหาการตอบกลับ > ข้อมูล
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| hasNext | ว่ามีการดึงข้อมูลเพิ่มเติมได้หรือไม่ | boolean |
| nextIndex | ดัชนีที่จะใช้สำหรับการดึงข้อมูลถัดไป | string |
| content | ประวัติข้อความช่องทาง | object array |
เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| gameIndex | ดัชนีเกม Hive | integer |
| from | ตัวระบุของบัญชีที่ได้รับข้อความ Hive player ID | long |
| extraData | ข้อมูลเพิ่มเติมของผู้ใช้ (UTF-8 based) (สูงสุด 256 ไบต์) | string |
| to | รหัสช่องทางที่ส่งข้อความ | string |
| message | เนื้อหาข้อความ | string |
| langCode | รหัสภาษาของ Hive (ตาม ISO 639 alpha-2, ภาษาใด ๆ ที่ไม่แตกต่างกันตาม ISO 639 alpha-2 ควรแยกด้วยแท็ก Script) | string |
| timestamp | วันที่และเวลาที่ส่งข้อความ (UTC+0 based, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) | string |
| timestampMillis | วันที่และเวลาที่ส่งข้อความ (UnixTimestamp Millisecond) | long |
ตัวอย่างคำขอ
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": [
// as size=50, returns 50 objects each of which is like the followings.
{
"gameIndex": 1,
"from": 1111112,
"extraData": "김하이브",
"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": "하이브2",
"langCode": "ko",
"timestamp": "2025-03-05T04:51:01.689Z",
"timestampMillis": 1741150261689
},
]
}
}