docs/guild.md
注意: QQ频道功能目前还在测试阶段, go-cqhttp 也在适配的初期阶段, 以下
APIEvent的字段名可能存在错误并均有可能在后续版本修改/添加/删除. 目前仅供开发者测试以及适配使用
QQ频道相关功能的事件以及API
注意, 最新文档已经移动到 go-cqhttp-docs, 当前文档只做兼容性保留, 所以内容可能有不足.
API以及字段相关命名均为参考QQ官方命名或相似产品命名规则, 由于QQ频道的账号系统独立于QQ本体, 所以各个 ID 并不能和QQ通用.也无法通过 tiny_id 获取到 QQ号
下表为常见字段命名说明
| 命名 | 说明 |
|---|---|
tiny_id | 在频道系统中代表用户ID, 与QQ号并不通用 |
guild_id | 频道ID |
channel_id | 子频道ID |
所有频道相关事件的
user_id均为tiny_id
images/guild-images. (群图片转发不受此限制)GlobalID 放下频道消息的ID, 所以所有频道消息的 message_id 均为 string 类型send_msg API将无法发送频道消息get_msg API暂时无法获取频道消息reply 等消息类型暂不支持解析at 消息的 target 依然使用 qq 字段, 以保证一致性. 但内容为 tiny_idself_id 均为 BOT 的QQ号. tiny_id 将放在 self_tiny_id 字段Android Phone 和 iPad 协议上使用.uint64 , 为保证不超过某些语言的安全值范围, 在 v1.0.0-beta8-fix3 以后, 所有ID相关数据将转换为 string 类型, API调用 uint64
或 string 均可接受.用户ID 均命名为 tiny_id, 所有频道相关接口的 用户ID 入参均命名为 user_id终结点: /get_guild_service_profile
响应数据
| 字段 | 类型 | 说明 |
|---|---|---|
nickname | string | 昵称 |
tiny_id | string | 自身的ID |
avatar_url | string | 头像链接 |
终结点: /get_guild_list
响应数据
正常情况下响应 GuildInfo 数组, 未加入任何频道响应 null
GuildInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
guild_name | string | 频道名称 |
guild_display_id | int64 | 频道显示ID, 公测后可能作为搜索ID使用 |
终结点: /get_guild_meta_by_guest
参数
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
响应数据
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
guild_name | string | 频道名称 |
guild_profile | string | 频道简介 |
create_time | int64 | 创建时间 |
max_member_count | int64 | 频道人数上限 |
max_robot_count | int64 | 频道BOT数上限 |
max_admin_count | int64 | 频道管理员人数上限 |
member_count | int64 | 已加入人数 |
owner_id | string | 创建者ID |
终结点: /get_guild_channel_list
参数
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
no_cache | bool | 是否无视缓存 |
响应数据
正常情况下响应 ChannelInfo 数组, 未找到任何子频道响应 null
ChannelInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
owner_guild_id | string | 所属频道ID |
channel_id | string | 子频道ID |
channel_type | int32 | 子频道类型 |
channel_name | string | 子频道名称 |
create_time | int64 | 创建时间 |
creator_tiny_id | string | 创建者ID |
talk_permission | int32 | 发言权限类型 |
visible_type | int32 | 可视性类型 |
current_slow_mode | int32 | 当前启用的慢速模式Key |
slow_modes | []SlowModeInfo | 频道内可用慢速模式类型列表 |
SlowModeInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
slow_mode_key | int32 | 慢速模式Key |
slow_mode_text | string | 慢速模式说明 |
speak_frequency | int32 | 周期内发言频率限制 |
slow_mode_circle | int32 | 单位周期时间, 单位秒 |
已知子频道类型列表
| 类型 | 说明 |
|---|---|
| 1 | 文字频道 |
| 2 | 语音频道 |
| 5 | 直播频道 |
| 7 | 主题频道 |
终结点: /get_guild_member_list
由于频道人数较多(数万), 请尽量不要全量拉取成员列表, 这将会导致严重的性能问题
尽量使用
get_guild_member_profile接口代替全量拉取
参数
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
next_token | string | 翻页Token |
next_token为空的情况下, 将返回第一页的数据, 并在返回值附带下一页的token
响应数据
| 字段 | 类型 | 说明 |
|---|---|---|
members | []GuildMemberInfo | 成员列表 |
finished | bool | 是否最终页 |
next_token | string | 翻页Token |
GuildMemberInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
tiny_id | string | 成员ID |
title | string | 成员头衔 |
nickname | string | 成员昵称 |
role_id | string | 所在权限组ID |
role_name | string | 所在权限组名称 |
默认情况下频道管理员的权限组ID为
2, 部分频道可能会另行创建, 需手动判断此接口仅展现最新的权限组, 获取用户加入的所有权限组请使用
get_guild_member_profile接口
终结点: /get_guild_member_profile
参数
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
user_id | string | 用户ID |
响应数据
| 字段 | 类型 | 说明 |
|---|---|---|
tiny_id | string | 用户ID |
nickname | string | 用户昵称 |
avatar_url | string | 头像地址 |
join_time | int64 | 加入时间 |
roles | []RoleInfo | 加入的所有权限组 |
RoleInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
role_id | string | 权限组ID |
role_name | string | 权限组名称 |
终结点: /send_guild_channel_msg
参数
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
channel_id | string | 子频道ID |
message | Message | 消息, 与原有消息类型相同 |
响应数据
| 字段 | 类型 | 说明 |
|---|---|---|
message_id | string | 消息ID |
终结点: /get_topic_channel_feeds
参数
| 字段 | 类型 | 说明 |
|---|---|---|
guild_id | string | 频道ID |
channel_id | string | 子频道ID |
响应数据
返回 FeedInfo 数组
FeedInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 帖子ID |
channel_id | string | 子频道ID |
guild_id | string | 频道ID |
create_time | int64 | 发帖时间 |
title | string | 帖子标题 |
sub_title | string | 帖子副标题 |
poster_info | PosterInfo | 发帖人信息 |
resource | ResourceInfo | 媒体资源信息 |
resource.images | []FeedMedia | 帖子附带的图片列表 |
resource.videos | []FeedMedia | 帖子附带的视频列表 |
contents | []FeedContent | 帖子内容 |
PosterInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
tiny_id | string | 发帖人ID |
nickname | string | 发帖人昵称 |
icon_url | string | 发帖人头像链接 |
FeedMedia:
| 字段 | 类型 | 说明 |
|---|---|---|
file_id | string | 媒体ID |
pattern_id | string | 控件ID?(不确定) |
url | string | 媒体链接 |
height | int32 | 媒体高度 |
width | int32 | 媒体宽度 |
FeedContent:
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 内容类型 |
data | Data | 内容数据 |
| 类型 | 说明 |
|---|---|
text | 文本 |
face | 表情 |
at | At |
url_quote | 链接引用 |
channel_quote | 子频道引用 |
text| 字段 | 类型 | 说明 |
|---|---|---|
text | string | 文本内容 |
face| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 表情ID |
at| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 目标ID |
qq | string | 目标ID, 为确保和 array message 的一致性保留 |
url_quote| 字段 | 类型 | 说明 |
|---|---|---|
display_text | string | 显示文本 |
url | string | 链接 |
channel_quote| 字段 | 类型 | 说明 |
|---|---|---|
display_text | string | 显示文本 |
guild_id | string | 频道ID |
channel_id | string | 子频道ID |
上报数据
| 字段 | 类型 | 可能的值 | 说明 |
|---|---|---|---|
post_type | string | message | 上报类型 |
message_type | string | guild | 消息类型 |
sub_type | string | channel | 消息子类型 |
guild_id | string | 频道ID | |
channel_id | string | 子频道ID | |
user_id | string | 消息发送者ID | |
message_id | string | 消息ID | |
sender | Sender | 发送者 | |
message | Message | 消息内容 |
注: 此处的
Sender对象为保证一致性,user_id为uint64类型, 并添加了string类型的tiny_id字段
上报数据
| 字段 | 类型 | 可能的值 | 说明 |
|---|---|---|---|
post_type | string | notice | 上报类型 |
notice_type | string | message_reactions_updated | 消息类型 |
guild_id | string | 频道ID | |
channel_id | string | 子频道ID | |
user_id | string | 操作者ID | |
message_id | string | 消息ID | |
current_reactions | []ReactionInfo | 当前消息被贴表情列表 |
ReactionInfo:
| 字段 | 类型 | 说明 |
|---|---|---|
emoji_id | string | 表情ID |
emoji_index | int32 | 表情对应数值ID |
emoji_type | int32 | 表情类型 |
emoji_name | string | 表情名字 |
count | int32 | 当前表情被贴数量 |
clicked | bool | BOT是否点击 |
上报数据
| 字段 | 类型 | 可能的值 | 说明 |
|---|---|---|---|
post_type | string | notice | 上报类型 |
notice_type | string | channel_updated | 消息类型 |
guild_id | string | 频道ID | |
channel_id | string | 子频道ID | |
user_id | string | 操作者ID | |
operator_id | string | 操作者ID | |
old_info | ChannelInfo | 更新前的频道信息 | |
new_info | ChannelInfo | 更新后的频道信息 |
上报数据
| 字段 | 类型 | 可能的值 | 说明 |
|---|---|---|---|
post_type | string | notice | 上报类型 |
notice_type | string | channel_created | 消息类型 |
guild_id | string | 频道ID | |
channel_id | string | 子频道ID | |
user_id | string | 操作者ID | |
operator_id | string | 操作者ID | |
channel_info | ChannelInfo | 频道信息 |
上报数据
| 字段 | 类型 | 可能的值 | 说明 |
|---|---|---|---|
post_type | string | notice | 上报类型 |
notice_type | string | channel_destroyed | 消息类型 |
guild_id | string | 频道ID | |
channel_id | string | 子频道ID | |
user_id | string | 操作者ID | |
operator_id | string | 操作者ID | |
channel_info | ChannelInfo | 频道信息 |