ข้ามไปที่เนื้อหา

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 ใช่

รหัสการตอบกลับ

  • รหัสการตอบสนอง API
รหัสสถานะ 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
      },
    ]
  }
}