跳转至

Http api

概述

聊天服务通过HTTP提供。API主要分为频道API用户API消息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 控制台 > 应用中心 > 项目管理 > 游戏详情 > 基本信息 中找到
  • 游戏索引:在 Hive 控制台 > 应用中心 > 项目管理 中创建的游戏的索引

渠道类型

以下频道类型在通过HTTP API发送时使用。

类型 描述
PUBLIC 任何人都可以加入的频道
PRIVATE 需要密码才能加入的频道
GROUP 特定用户的频道(例如,公会)

请求 URL

服务器 URL
现场 api-chat.withhive.com
沙盒 sandbox-api-chat.withhive.com

常见标题

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串 Y
Content-Type 请求数据的类型 (application/json) 字符串 Y

响应代码

  • API 响应代码
HTTP 状态码 代码 消息 描述
200 0 成功。 成功
400 100 错误请求。 无效请求
401 101 无效令牌。 无效令牌
403 102 被禁止。 没有权限
404 103 未找到。 未找到
405 104 方法不允许。 方法不允许
500 105 服务器内部错误。 服务器内部错误
  • 详细错误代码 (400, 403)
HTTP 状态码 代码 消息 描述
400 200 重复的频道 ID。 重复的频道 ID
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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels
HTTP 方法 GET

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串 Y

查询参数

字段 描述 类型 必需
type 渠道类型(PRIVATEPUBLICGROUP 字符串
channelId 检索以此频道 ID 开头的频道 字符串
channelName 检索包含此频道名称的频道 字符串
sort 排序标准(channelIdchannelNameregTime
(默认 regTime
字符串
order 排序顺序(ASCDESC
(默认 DESC
字符串
size 每页检索的频道数量
(最小 1 ~ 最大 10,默认 10)
整数
page 要检索的页码
(从 1 开始,默认 1)
整数

响应主体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串
data 响应数据 对象
响应主体 > 数据
字段 描述 类型
content 渠道列表 对象数组
page 页面信息 对象
响应主体 > 数据 > 内容
字段 描述 类型
channelId 渠道 ID 字符串
type 渠道类型 (PRIVATE, PUBLIC, GROUP) 字符串
gameIndex Hive 游戏索引 整数
owner 渠道拥有者的玩家 ID 字符串
channelName 渠道名称 字符串
memberCount 当前频道成员数量 整数
maxMemberCount 频道允许的最大成员数量 整数
chatHistoryAllowed 是否可以查看消息历史 布尔值
regTime 渠道创建日期和时间(UTC+0 标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ 格式) 字符串
regTimeMillis 渠道创建日期和时间(Unix时间戳毫秒) 长整型
响应主体 > 数据 > 页面
字段 描述 类型
size 每页项目数量 整数
currentPage 当前页码 整数
totalElements 项目总数 整数
totalPages 页数总数 整数

请求示例

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

响应示例

{
  "code": 0,
  "message": "Success.",
  "data": {
    "content": [
      {
        "channelId": "open:12345",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "Open Chat Room",
        "memberCount": 2,
        "maxMemberCount": 50,
        "chatHistoryAllowed": true,
        "regTime": "2024-12-30T15:01:01.004Z",
        "regTimeMillis": 1731306364351
      },
      /// ... Channel information
    ],
    "page": {
      "size": 10,
      "currentPage": 1,
      "totalElements": 100,
      "totalPages": 10
    }
  }
}

获取频道

检索有关频道的详细信息。

请求 URL

服务器 URL
现场 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 要检索的频道ID 字符串

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串 Y

响应主体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串
data 响应数据 对象
响应主体 > 数据
字段 描述 类型
info 渠道信息 对象
members 成员列表 对象数组
响应主体 > 数据 > 信息
字段 描述 类型
channelId 频道 ID 字符串
type 频道类型 (PRIVATE, PUBLIC, GROUP) 字符串
gameIndex Hive 游戏索引 整数
owner 频道拥有者 字符串
channelName 频道名称 字符串
memberCount 当前频道成员数量 整数
maxMemberCount 频道允许的最大成员数量 整数
chatHistoryAllowed 是否可以查看消息历史 布尔值
regTime 频道创建日期和时间(UTC+0 标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ 格式) 字符串
regTimeMillis 频道创建日期和时间(Unix时间戳毫秒) 长整型
响应主体 > 数据 > 成员
字段 描述 类型
playerId 玩家ID long
connectedTime 连接日期和时间(UTC+0标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ格式) string
connectedTimeMillis 连接日期和时间(Unix时间戳毫秒) long

请求示例

curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'

响应示例

{
  "code": 0,
  "message": "Success.",
  "data": {
    "info": {
      "channelId": "open:12345",
      "type": "PUBLIC",
      "gameIndex": 1,
      "owner": "SYSTEM",
      "channelName": "Open Chat Room",
      "memberCount": 2,
      "maxMemberCount": 50,
      "chatHistoryAllowed": true,
      "regTime": "2024-12-30T15:01:01.004Z",
      "regTimeMillis": 1731306364351
    },
    "members": [
      {
        "playerId": 1,
        "connectedTime": "2024-11-25T06:22:06.604Z",
        "connectedTimeMillis": 1739328218507
      },
      {
        "playerId": 2,
        "connectedTime": "2024-11-25T06:22:16.233Z",
        "connectedTimeMillis": 1731306364351
      }
    ]
  }
}

获取频道成员

检索有关频道成员的信息。

请求 URL

服务器 URL
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members
HTTP 方法 GET

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数 Y
channelId 要检索的频道ID 字符串 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串 Y

响应正文

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串
data 响应数据 对象
响应主体 > 数据
字段 描述 类型
members 渠道成员列表 对象数组
响应主体 > 数据 > 成员
字段 描述 类型
playerId 玩家ID long
connectedTime 连接日期和时间(UTC+0标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ格式) string
connectedTimeMillis 连接日期和时间(Unix时间戳毫秒) 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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/channel
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channel
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串 Y
Content-Type 请求数据的类型 (application/json) 字符串 Y

请求体

请求创建频道时要发送的数据。

字段 描述 类型 必需
channelId 渠道ID
(可以使用英文字母(大小写)、数字和一些特殊字符(-._~:),最多100个字符)
字符串
playerId 渠道创建者的玩家ID 长整型
password 密码(PRIVATE 渠道必需)
(最多50个字符)
字符串
channelName 渠道名称
(最多50个字符)
字符串
maxMemberCount 渠道允许的最大成员数
(最小2 ~ 最大5,000)
整型
type 渠道类型(PRIVATEPUBLICGROUP 字符串
chatHistoryAllowed 是否可以查看消息历史
(默认值为假)
布尔型

响应主体

字段 描述 类型
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": "Open Chat Room",
    "maxMemberCount": 100,
    "type": "PUBLIC",
    "chatHistoryAllowed": true
}'

响应示例

{
    "code": 0,
    "message": "Success."
}

删除频道

删除频道。

请求 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 方法 DELETE

路径参数

字段 描述 类型 是否必需
gameIndex Hive 游戏索引 整数
channelId 要删除的频道ID 字符串

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串 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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 是否必需
gameIndex Hive 游戏索引 整数
channelId 进入频道的ID 字符串

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串
Content-Type 请求数据的类型 (application/json) 字符串

请求体

请求进入频道时所需的数据。

字段 描述 类型 必需
playerId 要输入的用户的玩家ID 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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数
channelId 退出频道的ID 字符串

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串 Y
Content-Type 请求数据的类型 (application/json) 字符串 Y

请求体

请求退出频道时所需的数据。

字段 描述 类型 必需
playerId 要退出的用户的玩家ID 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服务器发出身份验证令牌。

使用发放的令牌连接到返回的Socket服务器地址。

请求 URL

服务器 URL
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token
HTTP 方法 POST

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数
playerId 玩家ID 长整型

头部参数

字段 描述 类型 必需
Authorization API调用的身份验证令牌(Bearer 字符串 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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels
HTTP 方法 GET

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数
playerId 玩家ID 长整型

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌(Bearer 字符串 Y

响应主体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串
data 响应数据 对象
响应体 > 数据
字段 描述 类型
gameIndex Hive 游戏索引 整数
playerId 玩家ID 长整型
channels 渠道列表 对象数组
响应主体 > 数据 > 渠道
字段 描述 类型
channelId 渠道 ID 字符串
type 渠道类型(PRIVATEPUBLICGROUP 字符串
gameIndex Hive 游戏索引 整数
owner 渠道所有者 字符串
channelName 渠道名称 字符串
memberCount 当前渠道中的成员数量 整数
maxMemberCount 渠道允许的最大成员数量 整数
chatHistoryAllowed 是否可以查看消息历史 布尔值
regTime 渠道创建日期和时间(UTC+0 标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ 格式) 字符串
regTimeMillis 渠道创建日期和时间(Unix时间戳毫秒) 长整型

请求示例

curl --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/channels' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 

响应示例

{
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "playerId": 1001,
    "channels": [
      {
        "channelId": "guild:12345",
        "type": "GROUP",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "Guild Chat Room",
        "memberCount": 1,
        "maxMemberCount": 50,
        "chatHistoryAllowed": true,
        "regTime": "2023-12-19T15:01:01.004Z",
        "regTimeMillis": 1731306364351
      },
      {
        "channelId": "open:67890",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "SYSTEM",
        "channelName": "Open Chat Room",
        "memberCount": 2,
        "maxMemberCount": 100,
        "chatHistoryAllowed": true,
        "regTime": "2023-12-20T10:15:30.123Z",
        "regTimeMillis": 1731302348750
      }
      // ... channels
    ]
  }
}

获取用户黑名单

检索被用户屏蔽的用户列表。

请求 URL

服务器 URL
生产环境 https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks
沙盒环境 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks
HTTP 方法 GET

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 字符串 Y
playerId 玩家ID 长整型 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串 Y

响应主体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串
data 响应数据 对象
响应主体 > 数据
字段 描述 类型
gameIndex Hive 游戏索引 整数
playerId 玩家ID 长整型
blockedUsers 被阻止的用户列表 对象数组
响应主体 > 数据 > 被阻止的用户
字段 描述 类型
blockedPlayerId 被封锁用户的玩家ID long
blockedTime 用户被封锁的日期和时间(UTC+0标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ格式) string
blockedTimeMillis 用户被封锁的日期和时间(Unix时间戳毫秒) long

请求示例

curl  --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/blocks' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 

响应示例

{
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "playerId": 1001,
    "blockedUsers": [
      {
        "blockedPlayerId": 1002,
        "blockedTime": "2023-12-20T10:15:30.123Z",
        "blockedTimeMillis": 1739329550811
      },
      {
        "blockedPlayerId": 1003,
        "blockedTime": "2023-12-21T08:45:12.456Z",
        "blockedTimeMillis": 1739329553137
      },
      // ... Blocked users list
    ]
  }
}

阻止用户

屏蔽另一个用户。这会限制实时消息的发送和接收。

请求 URL

服务器 URL
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId}
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId}
HTTP 方法 POST

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 字符串
playerId 玩家ID 长整型
blockPlayerId 要被阻止的玩家ID 长整型

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串 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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId}
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId}
HTTP 方法 DELETE

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 字符串 Y
playerId 玩家ID 长整型 Y
blockedPlayerId 要解封的玩家ID 长整型 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串 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
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串
Content-Type 请求数据的类型 (application/json) 字符串

请求体

请求发送通知消息时要发送的数据。

字段 描述 类型 必需
channelId 发送消息的频道 ID 字符串
langCode 接收消息的用户的 Hive 语言代码(如果未提供,则无论语言如何发送)
(基于 ISO 639 alpha-2,使用脚本标签区分未按 ISO 639 alpha-2 分类的语言)
字符串
message 要发送的通知消息的内容
(最多 200 个字符)
字符串

channelId

如果提供了 channelId,则会向所有连接到该频道的用户发送频道通知消息

如果未提供 channelId,则会向所有连接到应用程序的用户发送 用户通知消息,并带有相应的 gameIndex

语言代码

如果未提供 langCode,则消息将发送给所有用户,无论其语言如何。

如果提供了 langCode,则消息仅发送给 langCode 与该值匹配的用户。例如,如果 langCodeen,则通知消息仅发送给 连接客户端时请求体 langCodeen 的用户

响应主体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串

请求示例

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "channelId": "open:12345",
    "langCode": "en",
    "message": "Server maintenance. Please reconnect later."
}'

响应示例

{
    "code": 0,
    "message": "Success."
}

发送用户通知消息

向用户发送用户通知消息

请求 URL

服务器 URL
直播 https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId}
沙盒 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId}
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数
playerId Hive 玩家ID 长整型

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串
Content-Type 请求数据的类型 (application/json) 字符串

请求体

请求向用户发送通知消息时要发送的数据。

字段 描述 类型 是否必需
langCode 接收消息的用户的Hive语言代码(如果未提供,则发送时不考虑语言)
(基于ISO 639 alpha-2,使用脚本标签区分未按ISO 639 alpha-2分类的语言)
字符串
message 要发送的通知消息的内容
(最多200个字符)
字符串

语言代码

如果未提供 langCode,则消息将无论语言如何发送给用户。

如果提供了 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": "This is a notice message for user 123123."
}'

响应示例

{
    "code": 0,
    "message": "Success."
}

发送频道自定义消息

向参与频道的所有用户发送自定义消息。

请求 URL

服务器 URL
生产环境 https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId}
沙盒环境 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId}
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数 Y
channelId 发送消息的频道ID 字符串 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的身份验证令牌 (Bearer) 字符串
Content-Type 请求数据的类型 (application/json) 字符串

请求体

请求发送自定义消息时要发送的数据。

字段 描述 类型 必需
message 要发送的自定义消息的内容(UTF-8标准)
(最大 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": "This is a custom message."
}'

响应示例

{
    "code": 0,
    "message": "Success."
}

发送用户自定义消息

向用户发送自定义消息。

请求 URL

服务器 URL
生产环境 https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users
沙盒环境 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users
HTTP 方法 POST
内容类型 application/json

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数 Y

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串 Y
Content-Type 请求数据的类型 (application/json) 字符串 Y

请求体

请求向用户发送自定义消息时要发送的数据。

字段 描述 类型 必需
playerIds 接收消息的账户标识符列表
玩家ID列表
(最多10个用户)
long array Y
message 要发送的自定义消息内容(UTF-8标准)
(最大8,000字节)
string Y

响应主体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串

请求示例

curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/users' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "playerIds": [
        123123
    ],
    "message": "This is a custom message."
}'

响应示例

{
    "code": 0,
    "message": "Success."
}

获取频道消息历史

检索频道的消息历史。频道消息历史通过基于光标的分页提供,并且只能检索过去30天的消息历史。只有在频道设置启用查看以前的对话历史。时,才能使用此API。在API响应中接收到的频道消息历史可能包括来自被阻止用户的消息。

分页:大小和索引

使用 index 查询参数进行分页。index 的默认值为 none,如果请求中没有 index,则将根据 size 检索最新的消息。

例如,如果API被调用时使用size=5而不指定index,将返回5条最近的消息历史记录以及一个nextIndex(例如,68009c30780e4f2d9830d8a0)。

随后,如果使用 index=68009c30780e4f2d9830d8a0size=5 调用 API,将检索到最后返回的消息之前发生的 5 条消息。

分页:有下一页

如果响应值 hasNexttrue,则还有更多的消息历史可用。换句话说,响应中接收到的 nextIndex 可以作为 index 用于检索该频道的更多先前消息历史。

请求 URL

服务器 URL
生产环境 https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages
沙盒环境 https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages
HTTP 方法 GET

路径参数

字段 描述 类型 必需
gameIndex Hive 游戏索引 整数
channelId 要检索的频道ID 整数

头部参数

字段 描述 类型 必需
Authorization API 调用的认证令牌 (Bearer) 字符串 Y

查询参数

请求检索频道消息历史时所需的查询字符串数据。

字段 描述 类型 必需
size 渠道历史的大小
(最小 1 ~ 最大 50)
整数
index 用于检索的索引(如果未提供,则检索最近的消息) 字符串

响应体

字段 描述 类型
code 响应代码 整数
message 结果消息 字符串
data 响应数据 对象

响应体 > 数据

字段 描述 类型
hasNext 是否可以检索更多数据 布尔值
nextIndex 用于检索的下一个索引 字符串
content 渠道消息历史 对象数组

响应主体 > 数据 > 内容

字段 描述 类型
gameIndex Hive 游戏索引 整数
from 接收消息的账户标识符
玩家ID
长整型
extraData 附加用户信息(UTF-8标准)
(最大256字节)
字符串
to 消息发送到的频道ID 字符串
message 消息内容 字符串
langCode Hive 语言代码
(基于ISO 639 alpha-2,使用脚本标签区分未按ISO 639 alpha-2分类的语言)
字符串
timestamp 消息发送的日期和时间(UTC+0标准,yyyy-MM-dd'T'HH:mm:ss.SSSZ格式) 字符串
timestampMillis 消息发送的日期和时间(Unix时间戳毫秒) 长整型

请求示例

curl --request GET 'https://test-api-chat.withhive.com/api/v1/games/1/channels/open:1/messages?size=50' \
--header 'Authorization: hivechat 005056fffea3fd10-000400fd-00000797-f67881178d98d1cd-64ae9a76'

响应示例

{
  "code": 0,
  "message": "Success.",
  "data": {
    "hasNext": true,
    "nextIndex": "67c7d83336af25202c1c0ad4",
    "content": [
    // size=50이므로 아래와 같은 객체들을 50개 반환함.
      {
        "gameIndex": 1,
        "from": 1111112,
        "extraData": "Kim Hive",
        "to": "open:10",
        "message": "zzz",
        "langCode": "ko",
        "timestamp": "2025-03-05T04:50:59.757Z",
        "timestampMillis": 1741150259757
      },
      {
        "gameIndex": 1,
        "from": 1111111,
        "extraData": null,
        "to": "open:10",
        "message": "Hive2",
        "langCode": "ko",
        "timestamp": "2025-03-05T04:51:01.689Z",
        "timestampMillis": 1741150261689
      },
    ]
  }
}