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频道机器人,所以暂时跳过这部分,当然放心啦,三连我速更,肯定会讲啦。


在这里插入图片描述
⬅️第二期:频道模块之频道管理
➡️第四期:频道模块之频道身份组与权限管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879409.shtml

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

相关文章

Java项目: 基于SpringBoot+mybatis+maven课程答疑系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven课程答疑系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

102.WEB渗透测试-信息收集-FOFA语法(2)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:101.WEB渗透测试-信息收集-FOFA语法(1) FOFA使用实例 • title&q…

vue devtools的使用

vue devtools的使用 Vue Devtools 是一个强大的浏览器扩展,旨在帮助你调试和开发 Vue.js 应用。它支持 Chrome 和 Firefox 浏览器,并提供了一些工具和功能,可以让你更轻松地查看和调试 Vue 应用的状态和行为。以下是如何安装和使用 Vue Devtools 的详细指南。 安装 Vue De…

资深盘点:国内外知名的ERP管理系统厂商有哪些?

已经考虑引入ERP系统却担心面临以下问题?ERP系统流程僵化难以调整?流程与实际业务脱节?培训不到位、技术支持不及时导致难以实现全员使用、共创?市面上的ERP系统众多不知道如何选择? 今天就根据2024最新市场动态&…

ISAC: Toward Dual-Functional Wireless Networks for 6G and Beyond【论文阅读笔记】

此系列是本人阅读论文过程中的简单笔记,比较随意且具有严重的偏向性(偏向自己研究方向和感兴趣的),随缘分享,共同进步~ Integrated Sensing and Communications: Toward Dual-Functional Wireless Networks for 6G and…

react crash course 2024 (1)理论概念

state的作用 react hooks 而无需写一个class jsx 样式用 spa

【Android】SurfaceFlinger Dumpsys信息分析

SurfaceFlinger Dumpsys信息分析 dumpsys Surfaceflinger 用来输出SurfaceFlinger服务的状态信息,利用这些信息可以分析Android 画面层次、Display配置等等信息。 本文基于Android14。 dumpsys的实现 dumpsys Surfaceflinger命令对应的源码实现如下 源文件&…

决策树算法上篇

决策树概述 决策树是属于有监督机器学习的一种,起源非常早,符合直觉并且非常直观,模仿人类做决策的过程,早期人工智能模型中有很多应用,现在更多的是使用基于决策树的一些集成学习的算法。 示例一: 上表根据…

怎样在备忘录中添加提醒?怎么设置备忘录提醒

备忘录作为我们日常生活中常用的软件,其记录事项的便捷性已经得到了广泛认可。无论是工作计划、购物清单还是个人日记,备忘录都能帮助我们将这些信息快速记录下来。然而,如果备忘录能够进一步提供提醒功能,那么它将变得更加实用&a…

Facebook的虚拟现实功能简介:社交网络的新前沿

在科技飞速发展的今天,虚拟现实(VR)已经从科幻小说中的梦想变成了触手可及的现实。作为全球领先的社交平台,Facebook(现已更名为Meta)正大力推动虚拟现实技术的发展,以重新定义用户的社交体验。…

Dockerfile中的RUN、CMD、ENTRYPOINT指令区别

RUN在构建过程中在镜像中执行命令。CMD容器创建时的默认命令。(可以被覆盖)ENTRYPOINT容器创建时的主要命令。(不可被覆盖) 指令介绍 1.RUN 在构建过程中在镜像中执行命令,是在 docker build中执行 2.CMD 作用&am…

C++ | Leetcode C++题解之第394题字符串解码

题目&#xff1a; 题解&#xff1a; class Solution { public:string src; size_t ptr;int getDigits() {int ret 0;while (ptr < src.size() && isdigit(src[ptr])) {ret ret * 10 src[ptr] - 0;}return ret;}string getString() {if (ptr src.size() || src[…

list和vector的区别

空间上 list的底层是 一个个节点链接起来的&#xff0c;自然是不连续的空间。 vector的底层是3个指针共同维护的一段连续的空间 vector&#xff1a;连续空间&#xff0c;不易造成内存碎片&#xff0c;空间利用率高。 list&#xff1a;结点不连续&#xff0c;易造成内存碎片&…

Nacos下载和启动

Nacos是什么&#xff1f; 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 下载 https://github.com/alibaba/nacos/releases/tag/2.1.1启动 将下载好的Nacos解压缩&#xff0c;然后到bin目录下打开cmd 输入指令&#xff1a;startup.cmd -m standalone 出…

工业大模型市场图谱:53个工业大模型全面梳理

工业场景要求严谨、容错率低&#xff0c;核心业务场景对模型准确率的要求达到95%以上、对幻觉的容忍率为0&#xff0c;因此通用基础大模型的工业知识往往不足以满足工业场景的应用需求。 根据沙丘智库发布的《2024年中国工业大模型应用跟踪报告》&#xff0c;工业大模型是指在…

互联网环境下CentOS7部署K8S

1.环境介绍 操作系统&#xff1a;CentOS Linux release 7.9.2009 (Core) 配置规格&#xff1a;2C 2G 30G VMware虚拟机 本安装手册将搭建一主两从K8S环境&#xff0c;并使用containerd作为容器运行时。 2.准备工作&#xff08;主从节点通用&#xff09; 本章节部分可在mas…

supabase链接vecs文档

使用Supabase链接本地数据库 Vecs 如何使用本地数据库工作。确保机器上安装了Supabase CLI。 # Initialize your project supabase init# Start Postgres supabase startSupabase vecs同步数据 vecs官方文档 创建集合 import vecs #下面这一行是本地的postgre数据库连接 #…

【C#】命名规范

文章目录 C# 命名规范使用Pascal case使用Camel case方法、属性、类命名见名知义LINQ查询变量使用有意义的名称如何声明成员变量和字段正确格式化和缩进代码如何撰写备注 通用C#编码最佳实践如何将值与空字符串进行比较使用异常处理使用&&和||可获得更好的性能单一职责…

Nginx快速使用

如果本系列文章对您有帮助&#xff0c;可以 star 一下我的 limou-learn-note&#xff0c;求求惹(๑&#xff1e; &#xff1c;)☆♡~ 叠甲&#xff1a;以下文章主要是依靠我的实际编码学习中总结出来的经验之谈&#xff0c;求逻辑自洽&#xff0c;不能百分百保证正确&#xff…

37拼购:电商新风尚,共享双赢的购物革命

随着2024年电商市场的日益繁荣&#xff0c;商品海洋中的同质化问题愈发严峻&#xff0c;消费者在茫茫商海中寻觅独特价值的难度陡增。在此背景下&#xff0c;一种名为“37悦享拼”的创新电商模式横空出世&#xff0c;它巧妙融合了私域社交与电商精髓&#xff0c;旨在打破传统壁…