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

news2024/9/22 23:33:40

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.coloradmin.cn/o/2144308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电磁场与电磁波 1.1矢量基础知识

1.标量 2.矢量 大小方向 用有方向的线段表示 在直角坐标系下 3.运算法则 (1)加法:平行四边形法则 (2)乘法:点乘&叉乘 点乘 两个向量a与b的内积为 ab |a||b|cos∠(a, b),特别地,0a a0 0;若…

Kettle的安装与基本使用

什么是Kettle? Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。是一个功能丰富的ETL工具,它允许用户轻松地进行数据抽…

老板电器让AI融入烹饪?老板数字厨电实力展示AI做饭!

AI技术的迅猛发展已经深刻地改变了众多行业的面貌,其影响力远远超出了计算机科学本身的范畴。在追求生产效率与自动化的道路上,AI无疑成为最强大的驱动力之一,正是在这样的背景下,老板电器发布的「食神」AI大模型也为老板数字厨电…

国外创意二维码应用案例:韩国Cheil特别制作“希望胶带”,帮助寻找失踪儿童!

每年,在全世界都有大量的儿童失踪案件发生。对于父母来说,仅凭一张照片、一张海报要在茫茫人海里找到失踪的孩子,何其艰难? 2020年5月,韩国广告公司Cheil与韩国国家警察局宣布:为寻找长期失踪儿童&#xf…

VBA编写代码导出和导入类、模块、窗体

功能描述 为了方便备份代码,运行一个函数,导出类、模块、窗体。当在其他vba工程使用时,可以运行另外一个函数,快速导入代码。 1、开发人员宏设置:信任对VBA工程对象模型的访问 2、引用 Microsoft Visual Basic for A…

【非常实用—Navicat重置 MySQL 的密码】

Navicat重置 MySQL 的密码 连接本地数据库,忘记原始密码停止 MySQL 服务以安全模式启动 MySQL打开新的命令行窗口重置密码停止 MySQL 并重启 连接本地数据库,忘记原始密码 停止 MySQL 服务 在命令行中使用以下命令停止服务(Windows 下&#…

2024秋季学期期中考

密码 mmmd5 直接在网上找一个md5解密的网站现场来解就可以了。每一段都拼接起来就可以了。 但是的话,也可以直接用脚本,但是要用到MD5的字典。 它给了一个附件,可以借助此来解答。 那么我们主要来学习一下hash函数, 哈希函数&…

15.10 在k8s部署grafana-deployment并导入k8s大盘

本节重点介绍 : grafana deployment部署k8s大盘导入 准备yaml 部署工作 1. 修改yaml中的节点选择器标签 k8s-node01改为你自己的节点 2. 在节点上创建数据目录 mkdir -pv /data/grafana3. 部署grafana # 部署 kubectl apply -f deployment.yaml # 检查 [rootprome-mast…

CMU 10423 Generative AI:lec7、8、9(专题1:AE、VAE详解)

文章目录 1 AE(自编码器)1.1 自编码器干什么用的1.2 自编码器的架构图、输入输出、训练方法1.3 常见应用1.4 代码示例:图片的压缩存储和复原 2 VAE(变分自编码器)2.1 概述2.2 AE存在的问题:隐空间不平滑&am…

ad 明明已经给原理图库添加封装了,为什么还是看不到

不得不说,ad可能真的是比较庞大也不比较冗余,使用的过程中就会出现各种各样的问题,明明所有的操作都没问题,可是就是没能得到自己想要的,额 真的一言难尽 软件本身也很庞大了 各种东西可能一下子反应不过来&#xf…

谁的大一不迷茫?网络安全到底该怎么入门?

大一的新生,都在向我询问类似的问题: 网络安全要学的东西好杂,找不到方向了,迷茫了 同学们都在研究xxx,我要去学吗? 精力有限,我到底该学什么编程语言,好怕选错啊 最近下班比较早…

指针 (六)

OK,书接上回,咱们继续: 一 . 函数指针变量 (1)函数指针变量的创建 首先我们得明白,什么是函数指针变量呢?从我们之前学习过的整型指针,数组指针的相关知识当中,通过类…

【软件测试】什么叫测试?

生活中的测试 测试在生活中是处处可见的 例如:在商场购买衣服 外观测试:挑选符合个人审美的衣服试穿测试:选择尺码,试穿材质测试:考虑材质相关问题价格测试:价格是否符合预期 例如:在购物软件购…

【逐行注释】自适应观测协方差R的AUKF(自适应无迹卡尔曼滤波,MATLAB语言编写),附下载链接

文章目录 自适应R的UKF逐行注释的说明运行结果部分代码各模块解释 自适应R的UKF 自适应无迹卡尔曼滤波(Adaptive Unscented Kalman Filter,AUKF)是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波(Unscented Kalman Filter&…

简单题58-最后一个单词的长度(Java and Python)20240918

问题的描述: python代码: class Solution(object):def lengthOfLastWord(self, s):""":type s: str:rtype: int"""# 去掉字符串前后的空格s s.strip()# 分割字符串,获取单词列表words s.split(" "…

9.1 溪降技术:游泳

目录 9.1 游泳概述观看视频课程电子书:游泳防御性游泳姿势**身体姿势** 积极游泳姿势**身体姿势** 总结 9.1 游泳 概述 深潭游泳 对于峡谷探险者来说,游泳是一项核心技能。我们的游泳水平和自信心将在很大程度上决定我们的路线选择。在这一阶段&#xff…

开放式耳机哪个好用?开放式耳机好还是入耳式耳机好?

开放式耳机这种新型的耳机类型最近几年,真的受到了越来越多人的欢迎了,所以很多人来问我如何才能选到一款合适自己的开放式耳机,毕竟一款合适自己的耳机才能够用的长久,作为一名合格的耳机测评师,在这里当然要为大家答…

Ollama:本地运行大模型【含UI界面】

文章目录 Ollama 简介安装 ollamaWindows 安装Docker 安装其它平台安装支持的模型模型清单模型参数与运行内存快速启动 llama 模型llama 模型介绍运行 llama3.1 模型通过 HTTP API 访问ollama 命令语法常用示例特别示例自定义模型创建 Modelfile创建模型并运行集成 Web 页面Ope…

Linux系统中的内建命令

当使用export命令设置环境变量时,既然export也是一个命令,那么一定也需要创建子进程,完成设置环境变量的任务。但是父子进程的数据是各自独立的(子进程会继承父进程的数据,但是),理论上来说父子…

客户说了算!精益产品开发,让中小企业精准触达用户需求!——张驰咨询

随着全球经济环境的波动,特别是疫情后经济复苏进程的反复,很多中小制造企业面临产品滞销、同质化严重和内卷竞争加剧的困境。市场饱和、利润微薄,还在新产品开发上遇到了研发人才不足、资金短缺等问题。许多企业在这场市场博弈中徘徊在生死边…