获取子频道权限
获取指定子频道的权限。
使用示例
import botpy
from botpy.message import Message
class MyClient(botpy.Client):
async def on_at_message_create(self, message: Message):
await self.api.get_channel_user_permissions(channel_id="xxxx", user_id="xxxx")
intents = botpy.Intents(public_guild_messages=True)
client = MyClient(intents=intents)
client.run(appid={appid}, token={token})
参数说明
字段名 | 必填 | 类型 | 描述 |
---|---|---|---|
channel_id | 是 | string | 子频道 ID |
user_id | 是 | string | 用户 ID ,参考 User |
返回说明
返回 ChannelPermissions 对象。
ChannelPermissions
字段名 | 类型 | 描述 |
---|---|---|
channel_id | string | 子频道 ID |
user_id | string | 用户 ID,参考 User |
permissions | string | 用户拥有的子频道权限,参考 Permissions |
Permissions
权限是 QQ 频道管理频道成员的一种方式,管理员可以对不同的人、不同的子频道设置特定的权限。用户的权限包括个人权限
和身份组权限
两部分,最终生效是取两种权限的并集。
权限在服务端
使用十六进制
方式描述,现有权限类型如下:
权限 | 值 | 描述 |
---|---|---|
可查看子频道 | 0x0000000001(1 << 0) | 支持指定成员 可见类型,支持身份组 可见类型 |
可管理子频道 | 0x0000000002(1 << 1) | 创建者、管理员、子频道管理员都具有此权限 |
可发言子频道 | 0x0000000004(1 << 2) | 支持指定成员 发言类型,支持身份组 发言类型 |
提示
对位运算
和移位操作符
不熟悉的可参考相关文档。 以上述可发言子频道
权限为例,操作数1
经1<<2
移位操作后,对应的二进制数为100
,对应的16
进制数为0x4
。同理如果要表示权限可发言 + 可查看
,将两种权限做加法即可,即:0x0000000002
+0x0000000004
=0x0000000006
。
SDK
中权限用十进制字符串
描述,以下面返回示例为例,permissions
是'5'
,表示拥有可发言子频道(4)
+可查看子频道(1)
两种权限。
返回示例
data
:
{
"channel_id": "1128412",
"user_id": "9962144428931019739",
"permissions": "6"
}