当前位置: 首页 > 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.卫生…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...