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

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 ดึงข้อความช่อง

ข้อมูลพื้นฐาน

เมื่อใช้ HTTP API เราจะให้ข้อมูลพื้นฐานที่คุณจำเป็นต้องรู้ในทั่วไป

การเตรียมพจนานุกรม

ในการใช้ 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 ผู้ใช้ไม่ใช่เจ้าของช่อง. ผู้ใช้ไม่ใช่เจ้าของช่อง

ฟีเจอร์ 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 รหัสช่อง string
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) string
gameIndex Hive ดัชนีเกม integer
owner Hive รหัสผู้เล่นของเจ้าของช่อง string
channelName ชื่อช่อง string
memberCount จำนวนผู้เข้าร่วมปัจจุบันในช่อง integer
maxMemberCount จำนวนผู้เข้าร่วมสูงสุดในช่อง integer
chatHistoryAllowed ว่าการดึงประวัติข้อความได้รับอนุญาตหรือไม่ boolean
regTime วันที่และเวลาที่สร้างช่อง (ตาม UTC+0, รูปแบบ yyyy-MM-dd'T'HH:mm:ss.SSSZ) string
regTimeMillis วันที่และเวลาที่สร้างช่อง (UnixTimestamp Millisecond) long
เนื้อหาการตอบกลับ > ข้อมูล > หน้า
ชื่อฟิลด์ คำอธิบาย ประเภท
ขนาด จำนวนรายการต่อหน้า จำนวนเต็ม
หน้าปัจจุบัน หมายเลขหน้าปัจจุบัน จำนวนเต็ม
จำนวนทั้งหมด จำนวนรายการทั้งหมด จำนวนเต็ม
จำนวนหน้าทั้งหมด จำนวนหน้าทั้งหมด จำนวนเต็ม

ตัวอย่างคำขอ

curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels?type=PUBLIC&sort=regTime&order=DESC&size=10&page=1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'

ตัวอย่างการตอบกลับ

{
  "code": 0,
  "message": "Success.",
  "data": {
    "content": [
      {
        "channelId": "open:12345",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "오픈 채팅방",
        "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
ไลฟ์ https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}
แซนด์บ็อกซ์ https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}
วิธีการ HTTP 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 ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) string ใช่

เนื้อหาคำขอ

นี่คือข้อมูลการส่งที่จำเป็นเมื่อขอสร้างช่องทาง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
channelId รหัสช่อง
(อนุญาตให้ใช้ตัวอักษรภาษาอังกฤษ ตัวเลข และอักขระพิเศษบางตัว (-, ., _, ~, :) สูงสุด 100 ตัวอักษร)
string Y
playerId รหัสผู้เล่นของ Hive ของผู้สร้างช่อง long N
password รหัสผ่าน (จำเป็นหากช่องเป็น PRIVATE)
(สูงสุด 50 ตัวอักษร)
string N
channelName ชื่อช่อง
(สูงสุด 50 ตัวอักษร)
string Y
maxMemberCount จำนวนผู้เข้าร่วมสูงสุดในช่อง
(ขั้นต่ำ 2 ถึงสูงสุด 5,000)
integer Y
type ประเภทช่อง (PRIVATE, PUBLIC, GROUP) string Y
chatHistoryAllowed ว่าสามารถดูประวัติข้อความได้หรือไม่
(ค่าเริ่มต้นคือ false)
boolean N

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
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) สตริง ใช่

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
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 ใช่
Content-Type ประเภทของข้อมูลคำขอ (application/json) string ใช่

เนื้อหาคำขอ

นี่คือข้อมูลที่จำเป็นเมื่อขอเข้าช่องทาง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
playerId รหัสผู้เล่นของผู้ใช้ที่จะได้รับการอนุญาต Hive long Y
password รหัสผ่าน (จำเป็นสำหรับช่อง PRIVATE) string N

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
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 รหัสผู้เล่นของผู้ใช้ที่จะถูกลบ 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 ดัชนีเกม integer Y
playerId Hive รหัสผู้เล่น long Y

พารามิเตอร์ส่วนหัว

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
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) สตริง ใช่

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ วัตถุ
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
gameIndex Hive ดัชนีเกม integer
playerId Hive รหัสผู้เล่น long
channels รายการช่องทาง อาร์เรย์วัตถุ
เนื้อหาการตอบกลับ > ข้อมูล > ช่องทาง
ชื่อฟิลด์ คำอธิบาย ประเภท
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

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การตอบกลับ จำนวนเต็ม
message ข้อความผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์
เนื้อหาการตอบกลับ > ข้อมูล
ชื่อฟิลด์ คำอธิบาย ประเภท
gameIndex Hive ดัชนีเกม integer
playerId Hive รหัสผู้เล่น long
blockedUsers รายชื่อที่ถูกบล็อก object array
เนื้อหาการตอบกลับ > ข้อมูล > ผู้ใช้ที่ถูกบล็อก
ชื่อฟิลด์ คำอธิบาย ประเภท
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
      },
      // ... 차단 목록
    ]
  }
}

บล็อกผู้ใช้

การบล็อกผู้ใช้คนอื่น นี่คือฟีเจอร์ที่จำกัดการส่งและรับข้อความแบบเรียลไทม์

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 Hive รหัสผู้เล่น long Y
blockedPlayerId 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."
}

ฟีเจอร์ 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 รหัสช่องทางในการส่งข้อความ สตริง ไม่
langCode รหัสภาษาของ Hive ของผู้ใช้ในการส่งข้อความ (หากไม่ระบุให้ส่งโดยไม่คำนึงถึงภาษา)
(ตาม ISO 639 alpha-2, ภาษาใด ๆ ที่ไม่แยกแยะโดย ISO 639 alpha-2 ควรแยกด้วยแท็ก Script)
สตริง ไม่
message เนื้อหาของข้อความประกาศที่จะส่ง
(สูงสุด 200 ตัวอักษร)
สตริง ใช่

Channelid

หาก channelId มีอยู่ ข้อความ การแจ้งเตือนช่อง จะถูกส่งไปยังผู้ใช้ทั้งหมดที่เชื่อมต่อกับช่อง

หาก channelId ไม่มีอยู่ จะมีการส่ง ข้อความแจ้งเตือนผู้ใช้ ไปยังผู้ใช้ทั้งหมดที่เชื่อมต่อกับแอปที่สอดคล้องกับพารามิเตอร์เส้นทาง 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 ไบต์)
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": "커스텀 메시지입니다."
}'

ตัวอย่างการตอบกลับ

{
    "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)
long array ใช่
message เนื้อหาของข้อความที่กำหนดเองที่จะส่ง (UTF-8 based)
(สูงสุด 8,000 ไบต์)
string ใช่

เนื้อหาการตอบกลับ

null

ตัวอย่างคำขอ

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 ดัชนีเกม integer Y
channelId รหัสช่องที่ต้องการค้นหา integer Y

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

พารามิเตอร์การค้นหา

นี่คือข้อมูลสตริงคำถามที่จำเป็นเมื่อขอการดึงข้อความช่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
size ขนาดประวัติช่อง
(ขั้นต่ำ 1 ~ สูงสุด 50)
จำนวนเต็ม ใช่
index ดัชนีที่ใช้สำหรับการดึงข้อมูล (หากไม่ระบุ จะดึงข้อความล่าสุด) สตริง ไม่

เนื้อหาการตอบกลับ

ชื่อฟิลด์ คำอธิบาย ประเภท
code รหัสผลลัพธ์การตอบกลับ จำนวนเต็ม
message คำอธิบายผลลัพธ์ สตริง
data ข้อมูลการตอบกลับ อ็อบเจ็กต์

เนื้อหาการตอบกลับ > ข้อมูล

ชื่อฟิลด์ คำอธิบาย ประเภท
hasNext ว่ามีการดึงข้อมูลเพิ่มเติมได้หรือไม่ boolean
nextIndex ดัชนีที่จะใช้สำหรับการดึงข้อมูลถัดไป string
content ประวัติข้อความช่องทาง object array

เนื้อหาของร่างตอบกลับ > ข้อมูล > เนื้อหา

ชื่อฟิลด์ คำอธิบาย ประเภท
gameIndex ดัชนีเกม Hive จำนวนเต็ม
from ตัวระบุของบัญชีที่ได้รับข้อความ
Hive player ID
ยาว
extraData ข้อมูลเพิ่มเติมของผู้ใช้ (UTF-8 based)
(สูงสุด 256 ไบต์)
สตริง
to ช่องทาง ID ที่ส่งข้อความ สตริง
message เนื้อหาข้อความ สตริง
langCode รหัสภาษาของ Hive
(ตาม ISO 639 alpha-2, ภาษาใด ๆ ที่ไม่แยกตาม ISO 639 alpha-2 ควรแยกด้วยแท็ก Script)
สตริง
timestamp วันที่และเวลาที่ส่งข้อความ (UTC+0 based, รูปแบบ 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": [
    // 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
      },
    ]
  }
}