当前位置: 首页 > article >正文

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

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

第五期介绍:频道模块之接口授权管理和发言管理

目录

  • QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第五期]
    • 第五期介绍:频道模块之接口授权管理和发言管理
      • 获取机器人在频道可用权限列表
      • 发送机器人在频道接口权限的授权链接
      • 获取频道消息频率的设置详情
      • 频道全员禁言
      • 频道指定成员禁言
      • 频道批量成员禁言
      • 致谢和更新

在这里插入图片描述


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

在这里插入图片描述

获取机器人在频道可用权限列表

接口

GET /guilds/{guild_id}/api_permission

功能描述
用于获取机器人在频道 guild_id 内可以使用的权限列表。

Content-Type
application/json

返回

字段名类型描述
apisAPIPermission 对象数组机器人可用权限列表

错误码
详见错误码。

Python示例

import requests

guild_id = "你的频道ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/api_permission"
Authorization = "QQBot 你的鉴权token"

headers = {
    "Authorization": Authorization
}

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

print(response)

响应数据包

# 取决于你给了机器人多少权限,我都给了,数据包返回了一大堆数据
{
  "apis": [
    {
      "path": "/guilds/{guild_id}/members/{user_id}",
      "method": "GET",
      "desc": "获取当前频道成员信息",
      "auth_status": 0
    },
    {
      "path": "/channels/{channel_id}/messages",
      "method": "POST",
      "desc": "创建消息",
      "auth_status": 1
    }
  ]
}

发送机器人在频道接口权限的授权链接

接口

POST /guilds/{guild_id}/api_permission/demand

功能描述
用于创建 API 接口权限授权链接,该链接指向 guild_id 对应的频道。

  • 每天只能在一个频道内发 3 条(默认值)频道权限授权链接。

Content-Type
application/json

参数

字段名类型描述
channel_idstring授权链接发送的子频道 id
api_identifyAPIPermissionDemandIdentify 对象api 权限需求标识对象
descstring机器人申请对应的 API 接口权限后可以使用功能的描述

返回
返回 APIPermissionDemand 对象。

错误码
详见错误码。

Python示例

import requests

guild_id = "你的频道ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/api_permission/demand"
Authorization = f"QQBot 你的鉴权token"

data = {
  "channel_id": "你的子频道id",
  "api_identify": {
    "path": "/guilds/{guild_id}",
    "method": "GET"
  },
  "desc": "显示频道信息"
}

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

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

print(response)

请求数据包

{
  "channel_id": "123456",
  "api_identify": {
    "path": "/guilds/{guild_id}",
    "method": "GET"
  },
  "desc": "显示频道信息"
}

响应数据包

{
  "guild_id": "xxxxxx",
  "channel_id": "123456",
  "api_identify": {
    "path": "/guilds/{guild_id}",
    "method": "GET"
  },
  "title": "王者机器人申请授权频道信息接口权限",
  "desc": "申请权限后才能正常使用机器人显示频道信息功能"
}

示例图
在这里插入图片描述


获取频道消息频率的设置详情

接口

GET /guilds/{guild_id}/message/setting

功能描述
用于获取机器人在频道 guild_id 内的消息频率设置。

Content-Type
application/json

返回
返回 MessageSetting 对象。

错误码
详见错误码。

Python示例

import requests

guild_id = "你的频道ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/message/setting"
Authorization = f"QQBot 你的鉴权token"

headers = {
    "Authorization": Authorization
}

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

print(response)

响应数据包

{
  "disable_create_dm": true, # 是否允许创建私信
  "disable_push_msg": false, # 是否允许发主动消息
  "channel_ids": [
    "1146313",
    "2651849",
    "2651149"
  ],# 子频道 id 数组
  "channel_push_max_num": 12 # 每个子频道允许主动推送消息最大消息条数
}

频道全员禁言

接口

PATCH /guilds/{guild_id}/mute

功能描述
用于将频道的全体成员(非管理员)禁言。

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

该接口同样可用于解除禁言,具体使用见 解除全员禁言。

Content-Type
application/json

参数

字段名类型描述
mute_end_timestampstring禁言到期时间戳,绝对时间戳,单位:秒(与 mute_seconds 字段同时赋值的话,以该字段为准)
mute_secondsstring禁言多少秒(两个字段二选一,默认以 mute_end_timestamp 为准)

解除禁言
该接口同样支持解除全员禁言,将mute_end_timestamp或mute_seconds传值为字符串’0’即可。

返回
成功返回 HTTP 状态码 204

错误码
详见错误码。

Python示例

import requests

guild_id = "你的频道ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/mute"
Authorization = f"QQBot 你的鉴权token"

# mute_end_timestamp和mute_seconds设置一个就好了,时间戳别用案例里面的,自己设置。
data = {
  "mute_end_timestamp": "1641916800",
  "mute_seconds": "120"
}

headers = {
    "Authorization": Authorization
}

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

if response.status_code == 204:
    print("全员禁言成功")
else:
    print("禁言失败,状态码:", response.status_code)

请求数据包

{
  "mute_end_timestamp": "xxxx",
  "mute_seconds": "120"
}

示例图:
在这里插入图片描述


频道指定成员禁言

接口

PATCH /guilds/{guild_id}/members/{user_id}/mute

功能描述
用于禁言频道 guild_id 下的成员 user_id

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

该接口同样可用于解除禁言,具体使用见 解除指定成员禁言。

Content-Type
application/json

参数

字段名类型描述
mute_end_timestampstring禁言到期时间戳,绝对时间戳,单位:秒(与 mute_seconds 字段同时赋值的话,以该字段为准)
mute_secondsstring禁言多少秒(两个字段二选一,默认以 mute_end_timestamp 为准)

返回
成功返回 HTTP 状态码 204

错误码
详见错误码。

Python示例

import requests

guild_id = "你的频道ID"
user_id = "你的用户ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/members/{user_id}/mute"
Authorization = f"QQBot 你的鉴权token"

data = {
  "mute_end_timestamp": "1641916800",
  "mute_seconds": "120"
}

headers = {
    "Authorization": Authorization
}

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

if response.status_code == 204:
    print("指定成员禁言成功")
else:
    print("禁言失败,状态码:", response.status_code)

请求数据包

{
  "mute_end_timestamp": "1641916800",
  "mute_seconds": "120"
}

频道批量成员禁言

接口

PATCH /guilds/{guild_id}/mute

功能描述
用于将频道的指定批量成员(非管理员)禁言。

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

该接口同样可用于批量解除禁言,具体使用见 批量解除禁言。

Content-Type
application/json

参数

字段名类型描述
mute_end_timestampstring禁言到期时间戳,绝对时间戳,单位:秒(与 mute_seconds 字段同时赋值的话,以该字段为准)
mute_secondsstring禁言多少秒(两个字段二选一,默认以 mute_end_timestamp 为准)
user_idsstring列表禁言成员的user_id列表,即 User 的id

批量解除禁言
该接口同样支持批量解除禁言,将mute_end_timestamp或mute_seconds传值为字符串’0’即可,及需要批量解除禁言的成员的user_id 列表user_ids。

返回
成功返回 HTTP 状态码 200,并返回设置成功的成员 user_ids

错误码
详见错误码。

Python示例

import requests

guild_id = "你的频道ID"
url = f"https://api.sgroup.qq.com/guilds/{guild_id}/mute"
Authorization = f"QQBot 你的鉴权token"

data = {
  "mute_end_timestamp": "1641916800",
  "mute_seconds": "120",
  "user_ids": ["1201318637970874066","1201318637970874067"]
}

headers = {
    "Authorization": Authorization
}

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

if response.status_code == 200:
    print("批量成员禁言成功")
    print(response.json())
else:
    print("禁言失败,状态码:", response.status_code)

请求数据包

{
  "mute_end_timestamp": "1641916800",
  "mute_seconds": "120",
  "user_ids": ["1201318637970874066","1201318637970874067"]
}

响应数据包

{
  "user_ids": ["1201318637970874066"]
}

致谢和更新

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

在这里插入图片描述

⬅️第四期:频道模块之频道身份组与权限管理
➡️第六期:频道模块之内容管理


http://www.kler.cn/a/310808.html

相关文章:

  • 运行springBlade项目历程
  • Chromium 中sqlite数据库操作演示c++
  • 如何使用IDEA创建Maven/SSM工程?
  • 使用Matlab神经网络工具箱
  • 手动搭建 Ghost 博客
  • 【Python】轻松解析JSON与XML:Python标准库的json与xml模块
  • 笔记:简要介绍WPF中FormattedText是什么,主要有什么功能
  • 普罗米修斯监控
  • 计算机网络 --- Socket 编程
  • open-webui安装部署
  • linux-网络管理-网络服务管理 17 / 100
  • 【C++语言】C/C++内存管理
  • ElK 8 收集 Nginx 日志
  • Java从入门到精通学习框架(二)
  • 计算机毕业设计污染物文献共享数据库管理系统网站开发与实现
  • CRM如何助力科技服务机构突破业务瓶颈?
  • VTD激光雷达(1)——01_OptiX_RayTracing-笔记
  • Newtonsoft.Json对象转JSON字符串全集
  • 解决已经安装过requests库,却导入不了
  • 规律题总结(持续更新)
  • 大数据Flink(一百一十八):Flink SQL水印操作(Watermark)
  • CISP备考题库(四)
  • Docker日志管理
  • 爆改YOLOv8|使用MobileNetV4替换yolov8的Backbone
  • 53.【C语言】 字符函数和字符串函数(strcmp函数)
  • 温故--javaweb