获取频道对象
大部分操作都需使用 Bot 对象来执行,请自行查看 Bot 对象初始化教程。
要想操作一个频道,首先需要知道目标频道的数字ID,并获取这个频道的对象。
channel = await bot.client.fetch_public_channel("频道id")
获取对象后,可调用其方法或传入其他函数中。
如果抛出没有权限的或403的异常,请检查频道ID是否正确、机器人是否处于该频道的服务器中、机器人是否有权限获取频道详情。
# 频道类型
KOOK中,频道分为文字频道、语音频道、频道分组。
在khl.py中,有如下类来实现channel对象的结构化,层级代表继承关系。
- Channel
- PrivateChannel 私聊
- PublicChannel
- PublicVoiceChannel 语音频道
- PublicTextChannel 文字频道
注意,对于khl.py来说,只要是服务器内的频道都是PublicChannel,请不要将服务器内的隐藏频道和PrivateChannel(私聊)弄混。
# 成员变量
频道对象的成员变量可以参考代码补全和KOOK官方API文档,khl.py中的成员变量和channel/view接口的返回值同名。
https://developer.kookapp.cn/doc/http/channell#获取频道详情 (opens new window)
频道type的类型是ChannelTypes,频道权限的类型是ChannelPermission,你可以进一步查看这两个类的成员变量,并和官方文档进行对照。
# 成员函数
函数名 | 对应接口 | 作用 |
---|---|---|
update | /api/v3/channel/update | 更新频道信息 |
list_users | - | 获取能看到这个频道的用户列表 |
list_messages | /api/v3/message/list | 获取频道内消息 |
send | /api/v3/message/create | 在文字频道中发送消息 |
fetch_user_list | /api/v3/channel/user-list | 获取语音频道内用户 |
move_user | /api/v3/channel/move-user | 在语音频道之间移动用户(用户必须在其他语音频道在线才能够移动到目标频道) |
上次更新: 2024/01/28, 12:35:55