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

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

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

第三期介绍:频道模块之频道成员

目录

  • QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期]
    • 第三期介绍:频道模块之频道成员
      • 获取子频道在线成员数
      • 获取频道成员列表
      • 获取频道身份组成员列表
      • 获取频道成员详情
      • 删除频道成员
      • 致谢和更新


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


在这里插入图片描述

获取子频道在线成员数

接口
GET /channels/{channel_id}/online_nums

功能描述
此接口用于查询音视频/直播子频道channel_id的在线成员数。

Content-Type
application/json

返回
成功时返回空对象,包含在线成员数:

{"online_nums": 1
}

错误码
具体错误码信息请参考错误码。

Python示例

import requestsurl = f"https://api.sgroup.qq.com/channels/{channel_id}/online_nums"
Authorization = f"QQBot {你的鉴权,不懂得看前面文章}"herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()print(response)

运行成功如下,因为我没有音频子频道,所以是如下输出:

{'code': 505007, 'message': 'requested channel is not audio or live channel'}

在这里插入图片描述

获取频道成员列表

接口
GET /guilds/{guild_id}/members

功能描述
用于获取指定guild_id的频道中所有成员的详情列表,支持分页。

注意事项

  • 公域机器人暂不支持申请,仅私域机器人可用。
  • 开通后需要先将机器人从频道移除,然后重新添加,方可生效。

Content-Type
application/json

参数

字段名类型描述
afterstring上一次回包中最后一个 memberuser id,如果是第一次请求填 0,默认为 0
limituint32分页大小,1-400,默认是 1。成员较多的频道尽量使用较大的 limit 值,以减少请求数

返回
返回Member对象数组。

返回结果说明

  1. 在每次翻页的过程中,可能会返回上一次请求已经返回过的member信息,需要调用方自己根据user id来进行去重。
  2. 每次返回的member数量与limit不一定完全相等。翻页请使用最后一个memberuser id作为下一次请求的after参数,直到回包为空,拉取结束。

错误码
具体错误码信息请参考错误码。

Python示例

import requestsurl = f"https://api.sgroup.qq.com/guilds/{guild_id}/members?limit=2"
Authorization = f"QQBot {你的鉴权}"herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()print(response)

运行结果如下:

# 运行出来的是一行的,不好展示,使用官方回复样式,实际获取数据和这个大差不差
[{"user": {"id": "xxxxxx","username": "xxxx","avatar": "xxxxxx","bot": false,"public_flags": 0,"system": false,"union_openid": "xxxxxx","union_user_account": ""},"nick": "","roles": ["1"],"joined_at": "2021-12-09T15:53:41+08:00","deaf": false,"mute": false,"pending": false},{"user": {"id": "xxxxxx","username": "秦时明月","avatar": "xxxxxx","bot": false,"public_flags": 0,"system": false,"union_openid": "xxxxxx","union_user_account": ""},"nick": "","roles": ["4"],"joined_at": "2021-12-02T15:19:00+08:00","deaf": false,"mute": false,"pending": false}
]

在这里插入图片描述

获取频道身份组成员列表

接口
GET /guilds/{guild_id}/roles/{role_id}/members

功能描述
用于获取 guild_id 频道中指定 role_id 身份组下所有成员的详情列表,支持分页。

注意

  • 公域机器人暂不支持申请,仅私域机器人可用,选择私域机器人后默认开通。
  • 开通后需要先将机器人从频道移除,然后重新添加,方可生效。

参数

字段名类型描述
start_indexstring将上一次回包中 next 填入,如果是第一次请求填 0,默认为 0
limituint32分页大小,1-400,默认是 1。成员较多的频道尽量使用较大的 limit 值,以减少请求数

返回

字段名类型描述
dataMember 对象数组一组用户信息对象
nextstring下一次请求的分页标识

有关返回结果的说明
每次返回的 member 数量与 limit 不一定完全相等。特定管理身份组下的成员可能存在一次性返回全部的情况。

错误码
详见错误码。

Python示例

import requestsurl = f"https://api.sgroup.qq.com/guilds/{guild_id}/roles/{role_id}/members?limit=2"
Authorization = f"QQBot {你的鉴权}"herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()print(response)

运行结果如下:

{"data": [{"user": {"id": "xxx","username": "xxx","avatar": "xxx","bot": false},"nick": "xxx","joined_at": "2021-11-03T20:41:36+08:00"}],"next": "0"
}

在这里插入图片描述

获取频道成员详情

接口
GET /guilds/{guild_id}/members/{user_id}

功能描述
用于获取 guild_id 指定的频道中 user_id 对应成员的详细信息。

Content-Type
application/json

返回
返回 Member 成员对象。

错误码
详见错误码。

Python示例

import requestsurl = f"https://api.sgroup.qq.com/guilds/{guild_id}/members/{user_id}"
Authorization = f"QQBot {你的鉴权}"herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()print(response)

运行结果如下:

{"user": {"id": "2823701233424295228","username": "xxx","avatar": "https://qqchannel-profile-1251316161.file.myqcloud.com/xxxxxxx","bot": false,"union_openid": "","union_user_account": ""},"nick": "","roles": ["1"],"joined_at": "2021-12-05T14:08:29+08:00"
}

在这里插入图片描述

删除频道成员

接口
DELETE /guilds/{guild_id}/members/{user_id}

功能描述
用于删除 guild_id 指定的频道下的成员 user_id

  1. 需要使用的 token 对应的用户具备踢人权限。如果是机器人,要求被添加为管理员。(读者需要知道的是,在我们提交的鉴权里,除了机器人的,也可以提交管理员的鉴权,当你提交的是机器人的鉴权,那么将是机器人执行,如果你提交的是操作者的鉴权,那么将是操作者执行,这在第一期提过一点)
  2. 操作成功后,会触发 频道成员删除事件
  3. 无法移除身份为管理员的成员

注意

  • 公域机器人暂不支持申请,仅私域机器人可用,选择私域机器人后默认开通。
  • 注意: 开通后需要先将机器人从频道移除,然后重新添加,方可生效。

Content-Type
application/json

参数

字段名类型描述
add_blacklistbool删除成员的同时,将该用户添加到频道黑名单中
delete_history_msg_daysint删除成员的同时,撤回该成员的消息,可以指定撤回消息的时间范围

:消息撤回时间范围仅支持固定的天数: 371530。 特殊的时间范围: -1: 撤回全部消息。默认值为 0 不撤回任何消息。

返回
成功返回 HTTP 状态码 204

错误码
详见错误码。

Python示例

import requestsurl = f"https://api.sgroup.qq.com/guilds/{guild_id}/members/{user_id}"
Authorization = f"QQBot {你的鉴权}"data = {{"add_blacklist": True,# 删除成员的同时,将该用户添加到频道黑名单中"delete_history_msg_days": -1# -1: 撤回全部消息
}
}
herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.delete(url, headers=herders).json()print(response)

我懒得删除自己的用户,这里返回就不展示了,官方也没有给示例,成功了就是返回状态码。
在这里插入图片描述

致谢和更新

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

👻关于频道成员事件和音视频/直播子频道成员进出事件 ,它们基于websocket方法。因为目前在讲openapi方法调用QQ频道机器人,所以暂时跳过这部分,当然放心啦,三连我速更,肯定会讲啦。


在这里插入图片描述
⬅️QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]
➡️第四期:频道模块之频道身份组与权限管理(更新中…)

相关文章:

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

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期] 第三期介绍:频道模块之频道成员 目录 QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期]第三期介绍:频道模块之频道成员获取子频道在线成员数获取频道成员列表获取频道身份组成员列…...

亚信安全全球云安全SaaS运营总部落地厦门 安全点亮一带一路

近日,第二十四届中国国际投资贸易洽谈会(以下简称“投洽会”)在福建厦门隆重开幕。本届投洽会以“投资链接世界”为主题,积极践行全球发展倡议,服务高质量共建“一带一路”。在投洽会的重要环节,福建省重大…...

在cmd中输入mysql无法运行(环境变量配置保姆级教程)

MySQL环境变量配置 问题概述:解决方法及步骤:检测是否解决问题 问题概述: 下载安装mysql之后,打开cmd界面输入mysql,出现如下提示: mysql 不是内部或外部命令,也不是可运行的程序,或…...

在Webmin上默认状态无法正常显示 Mariadb V11.02及以上版本

OS: Armbian OS 24.5.0 Bookworm Mariadb V11.02及以上版本 Webmin:V2.202 非常小众的问题,主要是记录一下。 如题 Webmin 默认无法 Mariadb V11.02及以上版本 如果对 /etc/webmin/mysql/config 文件作相应调整就可以再现Mariadb管理界面。 路径文件&am…...

C和指针:预处理(#include/define/if...)

预处理器 编译第一步称为预处理(preprocessing)阶段。C预处理器(preprocessor)在源代码编译之前对其进行一些文本性质的操作,包括删除注释、插入被#include 指令包含的文件的内容,替换由#define指令定义的符号以及根据条件编译指令进行编译。 预定义符…...

【Java数据结构】泛型的进阶部分(泛型通配符)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…...

大模型实战一、Ollama+RagFlow 部署本地知识库

大模型实战一、OllamaRagFlow 部署本地知识库 参考你提供的文章,这里是基于 Windows 系统通过 Docker 安装部署 RagFlow 和 Ollama 的本地化大模型知识库的详细教程。本文将指导你如何在 Windows 上使用 Docker 来设置 RagFlow 和 Ollama 环境,并安装通…...

系统工程建模MBSE

################################# ############# 片段一 ############## ################################# 下图采用“V”模式显示了集成的基于模型的系统/嵌入式软件开发流程Harmony。左侧描述了自顶向下的设计流程,而右侧显示了自底而上的从单元测试到最终系统验收测试…...

SVN的使用技巧

SVN(Subversion)是近年来崛起的版本管理工具,因为是免费的,所以用的人还是不少的。故做一些总结。 如果是新手,基本对SVN一点都不了解的话,建议去学习一下这个系统的教程,讲的也很详细Tortoise…...

使用 RabbitMQ 实现秒杀订单系统的异步消息处理

使用 RabbitMQ 实现秒杀订单系统的异步消息处理 在秒杀系统中,如何确保高并发环境下的订单处理稳定高效是个很大的挑战。为了解决这个问题,我们通常会引入消息队列,通过异步处理来削峰填谷。这篇文章将详细讲解如何使用 RabbitMQ 来设计一个…...

oracle19.3单机升级到Oracle19.22

1.补丁包、opatch准备 -rw-r--r-- 1 oracle oinstall 1817908992 9月 10 14:25 p35943157_190000_Linux-x86-64.zip -rw-r--r-- 1 oracle oinstall 133535622 9月 10 14:22 p6880880_190000_Linux-x86-64.zip2.解压补丁包和opatch包 先将原有opatch备份 [oraclecyptdg ~]$…...

半导体的发展--创世新产品介绍

文章目录 半导体的发展 半导体的发展 现代社会对于芯片的需求是越来越多了,90 年代我们能在收音机,电视机,DVD,上面看到芯片的身影,进入 2000 年,电脑,手机逐渐进入中国家庭,中国高…...

Ubuntu WSL使用技巧

0 Preface/Foreword 1 默认为root用户 当下载完成Ubuntu之后,首次登录,当完成初始化后,提示输入新的用户名时候,直接点击右上角的X按钮,再重新登陆,系统会默认使用root权限登录。...

4 个步骤带你快速上手 Einstein Copilot for Tableau

如果你的企业仍未部署或希望迁移至 Tableau Cloud,可考虑订阅 Tableau 高级套件。 自 Einstein Copilot for Tableau 发布以来,相信部分用户已经尝试过在 Tableau Cloud 中借助 AI 对话助理,快速解决数据分析中的问题,获得更准确的…...

C++ | Leetcode C++题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> lexicalOrder(int n) {vector<int> ret(n);int number 1;for (int i 0; i < n; i) {ret[i] number;if (number * 10 < n) {number * 10;} else {while (number % 10 9 || numbe…...

vsftpd配置用户和密码让其他客户端连接

一、第一个主机:vsftpd下载及配置 前置准备: #卸载防火墙 yum -y remove firewalld #为了不让防火墙有影响&#xff0c;iptables配置也清空 iptables -F vim /etc/selinux/conf SELINUXdisabled #主要是把它改为disabled或者permissive SELINUXTYPEtargeted #重启linux让seli…...

Oracle使用序列后提示违反唯一约束---解决办法

1、问题原因分析 出现这个问题的原因是插入数据的时候&#xff0c;由于之前没有使用序列插入&#xff0c;而是直接插入了一个比当前序列nextval还大的值&#xff0c;即直接将id写死了。后面再使用序列插入的时候&#xff0c;如果序列小于该值的话&#xff0c;是可以正常插入的…...

乐观锁悲观锁

乐观锁 乐观锁的核心思想是“尽量不去锁定资源&#xff0c;而是尽量让线程并发地工作”&#xff0c;并在最后阶段检查冲突&#xff0c;只有在检测到冲突时才会采取纠正措施。乐观锁通常通过以下方式实现&#xff1a; 版本号控制&#xff1a;每次对共享资源进行修改时&#xf…...

Unity面试:什么是UnityEvent?

UnityEvent是Unity引擎中一种特殊的事件系统&#xff0c;属于Unity的事件和委托机制。它允许开发者在运行时定义和管理事件的响应&#xff0c;从而实现松耦合的事件处理。 以下是UnityEvent的一些主要特点和用途&#xff1a; 松耦合的设计&#xff1a;UnityEvent允许对象之间…...

食品安全管理员考试真题题库及答案

食品安全管理员考试真题题库及答案 95.对食品生产经营企业来说&#xff0c;实施ISO 22000是&#xff08;&#xff09;。 A.强制性的 B.无效的 C.自愿的 D.必须的 答案&#xff1a;C 96.CDC的意思是&#xff08;&#xff09;。 A.卫生监督所 B.疾病控制预防中心 C.卫生…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...

ZYNQ学习记录FPGA(二)Verilog语言

一、Verilog简介 1.1 HDL&#xff08;Hardware Description language&#xff09; 在解释HDL之前&#xff0c;先来了解一下数字系统设计的流程&#xff1a;逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端&#xff0c;在这个过程中就需要用到HDL&#xff0c;正文…...