API定义列表
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
此处会列举 API 模块 中、 love.forte.simbot.qguild.api 包下定义的所有 QQGuildApi 实现。
- GatewayApis
love.forte.simbot.qguild.api.GatewayApis获取网关信息。
通过
Normal或Shared的形式根据bot信息获取使用 Websocket 接入时间通知的链接。- Normal
love.forte.simbot.qguild.api.Normal获取通用 WSS 接入点
love.forte.simbot.qguild.api.Shared获取带分片 WSS 接入点
- CreateAnnouncesApi
love.forte.simbot.qguild.api.announces.CreateAnnouncesApi机器人设置消息为指定子频道公告。
- DeleteAnnouncesApi
love.forte.simbot.qguild.api.announces.DeleteAnnouncesApi机器人删除指定子频道公告
- DemandApiPermissionApi
love.forte.simbot.qguild.api.apipermission.DemandApiPermissionApi用于创建 API 接口权限授权链接,该链接指向
guild_id对应的频道 。需要注意,私信场景中,当需要查询私信来源频道的权限时,应使用
src_guild_id,即 message 中的src_guild_id每天只能在一个频道内发
3条(默认值)频道权限授权链接。- GetApiPermissionListApi
love.forte.simbot.qguild.api.apipermission.GetApiPermissionListApi用于获取机器人在频道
guild_id内可以使用的权限列表。- CreateChannelApi
love.forte.simbot.qguild.api.channel.CreateChannelApi用于在
guild_id指定的频道下创建一个子频道。要求操作人具有管理频道的权限,如果是机器人,则需要将机器人设置为管理员。
创建成功后,返回创建成功的子频道对象,同时会触发一个频道创建的事件通知。
- DeleteChannelApi
love.forte.simbot.qguild.api.channel.DeleteChannelApi用于删除
channel_id指定的子频道。要求操作人具有
管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。修改成功后,会触发子频道删除事件。
注意
子频道的删除是无法撤回的,一旦删除,将无法恢复。
- GetChannelApi
love.forte.simbot.qguild.api.channel.GetChannelApi- GetChannelOnlineNumsApi
love.forte.simbot.qguild.api.channel.GetChannelOnlineNumsApi用于查询音视频/直播子频道 channel_id 的在线成员数。
- GetGuildChannelListApi
love.forte.simbot.qguild.api.channel.GetGuildChannelListApi用于获取
guild_id指定的频道下的子频道列表。- ModifyChannelApi
love.forte.simbot.qguild.api.channel.ModifyChannelApi用于修改
channel_id指定的子频道的信息。要求操作人具有
管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。修改成功后,会触发子频道更新事件。
- GetChannelMemberPermissionsApi
love.forte.simbot.qguild.api.channel.permissions.GetChannelMemberPermissionsApi用于获取 子频道
channel_id下用户user_id的权限。获取子频道用户权限。
要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。
- GetChannelRolePermissionsApi
love.forte.simbot.qguild.api.channel.permissions.GetChannelRolePermissionsApi用于获取子频道
channel_id下身份组role_id的权限。要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。
- ModifyChannelMemberPermissionsApi
love.forte.simbot.qguild.api.channel.permissions.ModifyChannelMemberPermissionsApi用于修改子频道
channel_id下用户user_id的权限。要求操作人具有
管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。参数包括
add和remove两个字段,分别表示授予的权限以及删除的权限。 要授予用户权限即把add对应位置 1,删除用户权限即把remove对应位置 1。当两个字段同一位都为 1,表现为删除权限。本接口不支持修改
可管理子频道权限。
- ModifyChannelRolePermissionsApi
love.forte.simbot.qguild.api.channel.permissions.ModifyChannelRolePermissionsApi用于修改子频道
channel_id下身份组role_id的权限。要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。
参数包括
add和remove两个字段,分别表示授予的权限以及删除的权限。 要授予身份组权限即把add对应位置 1,删除身份组权限即把remove对应位置 1。当两个字段同一位都为 1,表现为删除权限。本接口不支持修改
可管理子频道权限。
- AddPinsMessageApi
love.forte.simbot.qguild.api.channel.pins.AddPinsMessageApi用于添加子频道
channel_id内的精华消息。精华消息在一个子频道内最多只能创建
20条。只有可见的消息才能被设置为精华消息。
接口返回对象中
message_ids为当前请求后子频道内所有精华消息message_id数组。
- DeletePinsMessageApi
love.forte.simbot.qguild.api.channel.pins.DeletePinsMessageApi用于删除子频道
channel_id下指定message_id的精华消息。删除子频道内全部精华消息,请将
message_id设置为 [all]DELETE_ALL_MESSAGE_ID。
- GetPinsMessageApi
love.forte.simbot.qguild.api.channel.pins.GetPinsMessageApi用于获取子频道
channel_id内的精华消息。- CreateScheduleApi
love.forte.simbot.qguild.api.channel.schedules.CreateScheduleApi用于在
channel_id指定的日程子频道下创建一个日程。要求操作人具有
管理频道的权限,如果是机器人,则需要将机器人设置为管理员。创建成功后,返回创建成功的日程对象。
创建操作频次限制
单个管理员每天限
10次。单个频道每天
100次。
- DeleteScheduleApi
love.forte.simbot.qguild.api.channel.schedules.DeleteScheduleApi用于修改日程子频道
channel_id下schedule_id指定的日程的详情。要求操作人具有
管理频道的权限,如果是机器人,则需要将机器人设置为管理员。
- GetScheduleApi
love.forte.simbot.qguild.api.channel.schedules.GetScheduleApi获取日程子频道
channel_id下schedule_id指定的的日程的详情。- GetScheduleListApi
love.forte.simbot.qguild.api.channel.schedules.GetScheduleListApi用于获取
channel_id指定的子频道中当天的日程列表。若带了参数
since,则返回在since对应当天的日程列表;若未带参数since,则默认返回今天的日程列表。
- ModifyScheduleApi
love.forte.simbot.qguild.api.channel.schedules.ModifyScheduleApi用于修改日程子频道
channel_id下schedule_id指定的日程的详情。要求操作人具有
管理频道的权限,如果是机器人,则需要将机器人设置为管理员。
- DeleteThreadApi
love.forte.simbot.qguild.api.forum.DeleteThreadApi该接口用于删除指定子频道下的某个帖子。
- GetThreadApi
love.forte.simbot.qguild.api.forum.GetThreadApi该接口用于获取子频道下的帖子详情。
- GetThreadListApi
love.forte.simbot.qguild.api.forum.GetThreadListApi该接口用于获取子频道下的帖子列表。
- PublishThreadApi
love.forte.simbot.qguild.api.forum.PublishThreadApi- GetGuildApi
love.forte.simbot.qguild.api.guild.GetGuildApi用于获取
guildId指定的频道的详情。- MuteAllApi
love.forte.simbot.qguild.api.guild.mute.MuteAllApi用于将频道的全体成员(非管理员)禁言。
需要使用的
token对应的用户具备管理员权限。如果是机器人,要求被添加为管理员。 该接口同样可用于解除禁言,将mute_end_timestamp或mute_seconds传值为字符串'0'即可。- MuteMemberApi
love.forte.simbot.qguild.api.guild.mute.MuteMemberApi用于禁言频道
guild_id下的成员user_id。需要使用的
token对应的用户具备管理员权限。如果是机器人,要求被添加为管理员。 该接口同样可用于解除禁言,将mute_end_timestamp或mute_seconds传值为字符串'0'即可。- MuteMultiMemberApi
love.forte.simbot.qguild.api.guild.mute.MuteMultiMemberApi用于将频道的指定批量成员(非管理员)禁言。
需要使用的
token对应的用户具备管理员权限。如果是机器人,要求被添加为管理员。 该接口同样可用于批量解除禁言,将mute_end_timestamp或mute_seconds传值为字符串'0'即可,及需要批量解除禁言的成员的user_id列表user_ids'。- DeleteMemberApi
love.forte.simbot.qguild.api.member.DeleteMemberApi用于删除 guild_id 指定的频道下的成员 user_id。
需要使用的 token 对应的用户具备踢人权限。如果是机器人,要求被添加为管理员。
操作成功后,会触发频道成员删除事件。
无法移除身份为管理员的成员
- GetGuildMemberListApi
love.forte.simbot.qguild.api.member.GetGuildMemberListApi用于获取 guild_id 指定的频道中所有成员的详情列表,支持分页。
有关返回结果的说明
在每次翻页的过程中,可能会返回上一次请求已经返回过的
member信息,需要调用方自己根据user id来进行去重。每次返回的
member数量与limit不一定完全相等。翻页请使用最后一个member的user id作为下一次请求的after参数,直到回包为空,拉取结束。
- GetGuildRoleMemberListApi
love.forte.simbot.qguild.api.member.GetGuildRoleMemberListApi用于获取
guild_id频道中指定role_id身份组下所有成员的详情列表,支持分页。有关返回结果的说明
每次返回的member数量与limit不一定完全相等。特定管理身份组下的成员可能存在一次性返回全部的情况
- GetMemberApi
love.forte.simbot.qguild.api.member.GetMemberApi用于获取
guild_id指定的频道中user_id对应成员的详细信息。- DeleteMessageApi
love.forte.simbot.qguild.api.message.DeleteMessageApi用于撤回子频道
channel_id下的消息message_id。管理员可以撤回普通成员的消息。
频道主可以撤回所有人的消息。
- GetMessageApi
love.forte.simbot.qguild.api.message.GetMessageApi用于获取子频道
channel_id下的消息message_id的详情。- MessageSendApi
love.forte.simbot.qguild.api.message.MessageSendApi用于向
channel_id指定的子频道发送消息。要求操作人在该子频道具有
发送消息的权限。主动消息在频道主或管理设置了情况下,按设置的数量进行限频。在未设置的情况遵循如下限制:
主动推送消息,默认每天往每个子频道可推送的消息数是
20条,超过会被限制。主动推送消息在每个频道中,每天可以往
2个子频道推送消息。超过后会被限制。不论主动消息还是被动消息,在一个子频道中,每
1s只能发送5条消息。被动回复消息有效期为
5分钟。超时会报错。发送消息接口要求机器人接口需要连接到 websocket 上保持在线状态
有关主动消息审核,可以通过 Intents 中审核事件
MESSAGE_AUDIT返回 MessageAudited 对象获取结果。
主动消息与被动消息
主动消息:发送消息时,未填充
msg_id/event_id字段的消息。被动消息:发送消息时,填充了
msg_id/event_id字段的消息。msg_id和event_id两个字段任意填一个即为被动消息。 接口使用此msg_id/event_id拉取用户的消息或事件,同时判断用户消息或事件的发送时间,如果超过被动消息回复时效,将会不允许发送该消息。
更多参考 文档
发送 ARK 模板消息
通过指定
ark字段发送模板消息。要求操作人在该子频道具有发送消息和 对应
ARK 模板的权限。调用前需要先申请消息模板,这一步会得到一个模板
id,在请求时填在ark.template_id上。发送成功之后,会触发一个创建消息的事件。
可用模板参考可用模板。
更多参考 文档
发送引用消息
只支持引用机器人自己发送到的消息以及用户@机器人产生的消息。
发送成功之后,会触发一个创建消息的事件。
不能单独发送引用消息,引用消息需要和其他消息类型组合发送,参数请见发送消息。
更多参考 文档
发送含有消息按钮组件的消息
通过指定
keyboard字段发送带按钮的消息,支持keyboard 模版和自定义 keyboard两种请求格式。要求操作人在该子频道具有
发送消息和对应消息按钮组件的权限。请求参数
keyboard 模版和自定义 keyboard只能单一传值。keyboard 模版调用前需要先申请消息按钮组件模板,这一步会得到一个模板 id,在请求时填在
keyboard字段上。申请消息按钮组件模板需要提供响应的 json,具体格式参考 InlineKeyboard。
仅
markdown消息支持消息按钮。
更多参考 文档
内嵌格式
利用
content字段发送内嵌格式的消息。内嵌格式仅在
content中会生效,在Ark和Embed中不生效。为了区分是文本还是内嵌格式,消息抄送和发送会对消息内容进行相关的转义。
转义内容
源字符
转义后
&&<<>>可参考使用
ContentTextDecoder和ContentTextEncoder消息审核
当响应结果为上述错误码时,请求实体对象结果的API时会抛出
MessageAuditedException异常并携带相关的对象信息。详见文档 发送消息 中的相关描述以及
MessageAuditedException的文档描述。更多参考 文档
- CreateDmsApi
love.forte.simbot.qguild.api.message.direct.CreateDmsApi用于机器人和在同一个频道内的成员创建私信会话。
机器人和用户存在共同频道才能创建私信会话。 创建成功后,返回创建成功的频道
id,子频道id和创建时间。参数
字段名
类型
描述
recipient_idstring接收者 id
source_guild_idstring源频道 id
- DeleteDmsApi
love.forte.simbot.qguild.api.message.direct.DeleteDmsApi用于撤回私信频道
guild_id中message_id指定的私信消息。只能用于撤回机器人自己发送的私信。- DmsSendApi
love.forte.simbot.qguild.api.message.direct.DmsSendApi接口
POST /dms/{guild_id}/messages功能描述
用于发送私信消息,前提是已经创建了私信会话。
私信的
guild_id在创建私信会话时以及私信消息事件中获取。私信场景下,每个机器人每天可以对一个用户发
2条主动消息。私信场景下,每个机器人每天累计可以发
200条主动消息。私信场景下,被动消息没有条数限制。
参数
和 [发送消息]
MessageSendApi参数一致。返回
和 [发送消息]
MessageSendApi返回一致。- GetMessageSettingApi
love.forte.simbot.qguild.api.message.setting.GetMessageSettingApi用于获取机器人在频道
guild_id内的消息频率设置。- AddMemberRoleApi
love.forte.simbot.qguild.api.role.AddMemberRoleApi用于将频道
guild_id下的用户user_id添加到身份组role_id。需要使用的
token对应的用户具备增加身份组成员权限。如果是机器人,要求被添加为管理员。如果要增加的身份组
ID是 [5-子频道管理员]love.forte.simbot.qguild.model.Role.DEFAULT_ID_CHANNEL_ADMIN, 需要增加channel对象来指定具体是哪个子频道。
- CreateGuildRoleApi
love.forte.simbot.qguild.api.role.CreateGuildRoleApi用于在
guild_id指定的频道下创建一个身份组。需要使用的
token对应的用户具备创建身份组权限。如果是机器人,要求被添加为管理员。参数为非必填,但至少需要传其中之一,默认为空或 0。
- DeleteGuildRoleApi
love.forte.simbot.qguild.api.role.DeleteGuildRoleApi用于删除频道
guild_id下role_id对应的身份组。需要使用的
token对应的用户具备删除身份组权限。如果是机器人,要求被添加为管理员。- GetGuildRoleListApi
love.forte.simbot.qguild.api.role.GetGuildRoleListApi用于获取
guild_id指定的频道下的身份组列表。- ModifyGuildRoleApi
love.forte.simbot.qguild.api.role.ModifyGuildRoleApi用于修改频道
guild_id下role_id指定的身份组。需要使用的
token对应的用户具备修改身份组权限。如果是机器人,要求被添加为管理员。接口会修改传入的字段,不传入的默认不会修改,至少要传入一个参数。
- RemoveMemberRoleApi
love.forte.simbot.qguild.api.role.RemoveMemberRoleApi用于将 用户
user_id从 频道guild_id的role_id身份组中移除。需要使用的
token对应的用户具备删除身份组成员权限。如果是机器人,要求被添加为管理员。如果要删除的身份组
ID是 [5-子频道管理员]love.forte.simbot.qguild.model.Role.DEFAULT_ID_CHANNEL_ADMIN, 需要增加channel对象来指定具体是哪个子频道。
- GetBotGuildListApi
love.forte.simbot.qguild.api.user.GetBotGuildListApi用于获取当前用户(机器人)所加入的频道列表,支持分页。
当
HTTP Authorization中填入Bot Token是获取机器人的数据,填入Bearer Token则获取用户的数据。- GetBotInfoApi
love.forte.simbot.qguild.api.user.GetBotInfoApi用于获取当前用户(机器人)详情。
由于
GetBotInfoApi本身为object类型, 因此ApiDescription由内部对象Description提供而不是伴生对象。GetBotInfoApi得到的User中,User.isBot始终为true。