注意: QQ频道功能目前还在测试阶段, go-cqhttp 也在适配的初期阶段, 以下
API
Event
的字段名可能存在错误并均有可能在后续版本修改/添加/删除. 目前仅供开发者测试以及适配使用
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_id
- 所有事件的
self_id
均为 BOT 的QQ号.tiny_id
将放在self_tiny_id
字段 - 遵循我们一贯的原则, 将不会支持主动加频道/主动拉人/红包相关消息类型
- 频道相关的API仅能在
Android Phone
和iPad
协议上使用. - 由于频道相关ID的数据类型均为
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 | 频道信息 |