QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第四期]

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第四期]

第四期介绍:频道模块之频道身份组与权限管理

在这里插入图片描述


不懂得的也可以来私聊或评论区问哦~
在这里插入图片描述
原力到一千才可以推广,三连啊喂!!!

在这里插入图片描述

获取频道身份组列表

接口
GET /guilds/{guild_id}/roles

功能描述
用于获取 guild_id 指定的频道下的身份组列表。

Content-Type
application/json

返回

字段名类型描述
guild_idstring频道 ID
rolesRole 对象数组一组频道身份组对象
role_num_limitstring默认分组上限

错误码
详见错误码

Python示例

import requests

url = f"https://api.sgroup.qq.com/guilds/{guild_id}/roles"
Authorization = f"QQBot {你的鉴权}"

}
herders = {
    "Content-Type": "application/json",
    "Authorization": Authorization
        }

response = requests.get(url, headers=herders).json()

print(response)

运行结果如下:

{
  "guild_id": "123456",
  "roles": [
    {
      "id": "4",
      "name": "创建者",
      "color": 4294927682,
      "hoist": 1,
      "number": 1,
      "member_limit": 1
    },
    {
      "id": "2",
      "name": "管理员",
      "color": 4280276644,
      "hoist": 1,
      "number": 5,
      "member_limit": 50
    }
  ],
  "role_num_limit": "30"
}

在这里插入图片描述

创建频道身份组

接口
POST /guilds/{guild_id}/roles

功能描述
用于在 guild_id 指定的频道下创建一个身份组。

  • 需要使用的 token 对应的用户具备创建身份组权限。如果是机器人,要求被添加为管理员。
  • 参数为非必填,但至少需要传其中之一,默认为空或 0

Content-Type
application/json

参数

字段名类型描述
namestring名称(非必填)
coloruint32ARGB 的 HEX 十六进制颜色值转换后的十进制数值(非必填)
hoistint32在成员列表中单独展示: 0-否, 1-是(非必填)

返回

字段名类型描述
role_idstring身份组 ID
roleRole 对象所创建的频道身份组对象

错误码
详见 错误码

Python示例

import requests

url = f"https://api.sgroup.qq.com/guilds/{guild_id}/roles"
Authorization = f"QQBot {你的鉴权}"

data = {
  "name": "test",
  "color": 99999,
  "hoist": "1"
}

}
herders = {
    "Content-Type": "application/json",
    "Authorization": Authorization
        }

response = requests.post(url, headers=herders, json=data).json()

print(response)

运行结果如下:

{
  "role_id": "10177739",
  "role": {
    "id": "10177739",
    "name": "test",
    "color": 99999,
    "hoist": 1,
    "number": 0,
    "member_limit": 2000
  }
}

在这里插入图片描述

修改频道身份组

接口

PATCH /guilds/{guild_id}/roles/{role_id}

功能描述
用于修改频道 guild_idrole_id 指定的身份组。

  • 需要使用的 token 对应的用户具备修改身份组权限。如果是机器人,要求被添加为管理员。
  • 接口会修改传入的字段,不传入的默认不会修改,至少要传入一个参数。

Content-Type
application/json

参数

字段名类型描述
namestring名称(非必填)
coloruint32ARGB 的 HEX 十六进制颜色值转换后的十进制数值(非必填)
hoistint32在成员列表中单独展示: 0-否, 1-是(非必填)

返回

字段名类型描述
guild_idstring频道 ID
role_idstring身份组 ID
roleRole 对象修改后的频道身份组对象

错误码
详见 错误码

Python示例

import requests

# 替换为你的guild_id和role_id
guild_id = "你的频道ID"
role_id = "你的身份组ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/roles/{role_id}"
Authorization = f"QQBot 你的鉴权token"

data = {
  "name": "test",
  "color": 99999,
  "hoist": 1
}

headers = {
    "Content-Type": "application/json",
    "Authorization": Authorization
}

response = requests.patch(url, headers=headers, json=data).json()

print(response)

请求数据包

{
  "name": "test",
  "color": 99999,
  "hoist": 1
}

响应数据包

{
  "guild_id": "3489223429684602178",
  "role_id": "10177739",
  "role": {
    "id": "10177739",
    "name": "test",
    "color": 99999,
    "hoist": 1,
    "number": 1,
    "member_limit": 2000
  }
}

在这里插入图片描述

删除频道身份组

接口

DELETE /guilds/{guild_id}/roles/{role_id}

功能描述
用于删除频道 guild_idrole_id 对应的身份组。

  • 需要使用的 token 对应的用户具备删除身份组权限。如果是机器人,要求被添加为管理员。

Content-Type
application/json

返回
成功返回 HTTP 状态码 204

错误码
详见 错误码

Python示例

import requests

# 替换为你的guild_id和role_id
guild_id = "你的频道ID"
role_id = "你的身份组ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/roles/{role_id}"
Authorization = f"QQBot 你的鉴权token"

headers = {
    "Authorization": Authorization
}

response = requests.delete(url, headers=headers)

if response.status_code == 204:
    print("身份组删除成功")
else:
    print("删除身份组失败,状态码:", response.status_code)

请求数据包

DELETE /guilds/123456/roles/112233

在这里插入图片描述

创建频道身份组成员

接口

PUT /guilds/{guild_id}/members/{user_id}/roles/{role_id}

功能描述
用于将频道 guild_id 下的用户 user_id 添加到身份组 role_id

  • 需要使用的 token 对应的用户具备增加身份组成员权限。如果是机器人,要求被添加为管理员。
  • 如果要增加的身份组 ID5-子频道管理员,需要增加 channel 对象来指定具体是哪个子频道。

Content-Type
application/json

参数

字段名类型描述
channelChannel 对象接收一个只填充了子频道 id 字段的对象

返回
成功返回 HTTP 状态码 204

错误码
详见 错误码

Python示例

import requests

# 替换为你的guild_id, user_id和role_id
guild_id = "你的频道ID"
user_id = "你的用户ID"
role_id = "你的身份组ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/members/{user_id}/roles/{role_id}"
Authorization = f"QQBot 你的鉴权token"

data = {
  "channel": {
    "id": "子频道ID"
  }
}

headers = {
    "Content-Type": "application/json",
    "Authorization": Authorization
}

response = requests.put(url, headers=headers, json=data)

if response.status_code == 204:
    print("用户成功添加到身份组")
else:
    print("添加用户到身份组失败,状态码:", response.status_code)

请求数据包

{
  "channel": {
    "id": "1744939"
  }
}

在这里插入图片描述

删除频道身份组成员

接口

DELETE /guilds/{guild_id}/members/{user_id}/roles/{role_id}

功能描述
用于将用户 user_id 从频道 guild_idrole_id 身份组中移除。

  • 需要使用的 token 对应的用户具备删除身份组成员权限。如果是机器人,要求被添加为管理员。
  • 如果要删除的身份组 ID5-子频道管理员,需要增加 channel 对象来指定具体是哪个子频道。

Content-Type
application/json

参数

字段名类型描述
channelChannel 对象接收一个只填充了子频道 id 字段的对象

返回
成功返回 HTTP 状态码 204

错误码
详见 错误码

Python示例

import requests

# 替换为你的guild_id, user_id和role_id
guild_id = "你的频道ID"
user_id = "你的用户ID"
role_id = "你的身份组ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/members/{user_id}/roles/{role_id}"
Authorization = f"QQBot 你的鉴权token"

headers = {
    "Authorization": Authorization
}

response = requests.delete(url, headers=headers)

if response.status_code == 204:
    print("用户成功从身份组移除")
else:
    print("移除用户从身份组失败,状态码:", response.status_code)

在这里插入图片描述

获取子频道用户权限

接口

GET /channels/{channel_id}/members/{user_id}/permissions

功能描述
用于获取子频道 channel_id 下用户 user_id 的权限。

  • 获取子频道用户权限。
  • 要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。

Content-Type
application/json

返回
返回 ChannelPermissions 对象。

错误码
详见 错误码

Python示例

import requests

# 替换为你的channel_id和user_id
channel_id = "你的子频道ID"
user_id = "你的用户ID"
url = f"https://api.sgroup.qq.com/channels/{channel_id}/members/{user_id}/permissions"
Authorization = f"QQBot 你的鉴权token"

headers = {
    "Authorization": Authorization
}

response = requests.get(url, headers=headers)

permissions = response.json()
print("用户权限:", permissions)

在这里插入图片描述

修改子频道用户权限

接口

PUT /channels/{channel_id}/members/{user_id}/permissions

功能描述
用于修改子频道 channel_id 下用户 user_id 的权限。

  • 要求操作人具有 管理子频道 的权限,如果是机器人,则需要将机器人设置为管理员。
  • 参数包括 addremove 两个字段,分别表示授予的权限以及删除的权限。要授予用户权限即把 add 对应位置 1,删除用户权限即把 remove 对应位置 1。当两个字段同一位都为 1,表现为删除权限。
  • 本接口不支持修改 可管理子频道 权限。

Content-Type
application/json

参数

字段名类型描述
addstring字符串形式的位图表示赋予用户的权限
removestring字符串形式的位图表示删除用户的权限

返回
成功返回 HTTP 状态码 204

错误码
详见 错误码

Python示例

import requests

# 替换为你的channel_id和user_id
channel_id = "你的子频道ID"
user_id = "你的用户ID"
url = f"https://api.sgroup.qq.com/channels/{channel_id}/members/{user_id}/permissions"
Authorization = f"QQBot 你的鉴权token"

data = {
  "add": "1",
  "remove": "4"
}

headers = {
    "Content-Type": "application/json",
    "Authorization": Authorization
}

response = requests.put(url, headers=headers, json=data)

if response.status_code == 204:
    print("用户权限修改成功")
else:
    print("修改用户权限失败,状态码:", response.status_code)

在这里插入图片描述

获取子频道身份组权限

接口

GET /channels/{channel_id}/roles/{role_id}/permissions

功能描述
用于获取子频道 channel_id 下身份组 role_id 的权限。

  • 要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。

Content-Type
application/json

返回
返回 ChannelPermissions 对象。

错误码
详见 错误码

Python示例

import requests

# 替换为你的channel_id和role_id
channel_id = "你的子频道ID"
role_id = "你的身份组ID"
url = f"https://api.sgroup.qq.com/channels/{channel_id}/roles/{role_id}/permissions"
Authorization = f"QQBot 你的鉴权token"

headers = {
    "Authorization": Authorization
}

response = requests.get(url, headers=headers)

permissions = response.json()
print("身份组权限:", permissions)

在这里插入图片描述

修改子频道身份组权限

接口

PUT /channels/{channel_id}/roles/{role_id}/permissions

功能描述
用于修改子频道 channel_id 下身份组 role_id 的权限。

  • 要求操作人具有 管理子频道 的权限,如果是机器人,则需要将机器人设置为管理员。
  • 参数包括 addremove 两个字段,分别表示授予的权限以及删除的权限。要授予身份组权限即把 add 对应位置 1,删除身份组权限即把 remove 对应位置 1。当两个字段同一位都为 1,表现为删除权限。
  • 本接口不支持修改 可管理子频道 权限。

Content-Type
application/json

参数

字段名类型描述
addstring字符串形式的位图表示赋予用户的权限
removestring字符串形式的位图表示删除用户的权限

返回
成功返回 HTTP 状态码 204

错误码
详见 错误码

Python示例

import requests

# 替换为你的channel_id和role_id
channel_id = "你的子频道ID"
role_id = "你的身份组ID"
url = f"https://api.sgroup.qq.com/channels/{channel_id}/roles/{role_id}/permissions"
Authorization = f"QQBot 你的鉴权token"

data = {
  "add": "1",
  "remove": "4"
}

headers = {
    "Content-Type": "application/json",
    "Authorization": Authorization
}

response = requests.put(url, headers=headers, json=data)

if response.status_code == 204:
    print("身份组权限修改成功")
else:
    print("修改身份组权限失败,状态码:", response.status_code)

在这里插入图片描述

致谢和更新

文章持续更新,如果三连支持,速更!!!
请在评论区提出疑惑和建议
上次更新: 9/11/2024, AM

在这里插入图片描述

⬅️QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期]
➡️第五期:频道模块之接口授权管理和发言管理(更新中…)

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃点李子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值