QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]
QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]
第二期介绍:频道模块之频道管理
目录
- QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]
- 第二期介绍:频道模块之频道管理
- 获取用户详情
- 获取用户频道列表
- 获取频道详情
- 获取子频道列表
- 获取子频道详情
- 创建子频道
- 修改子频道
- 删除子频道
- 致谢和更新
不懂得的也可以来私聊或评论区问哦~
原力到一千才可以推广,三连啊喂!!!

获取用户详情
接口
GET /users/@me
功能描述
用于获取当前用户(机器人)详情。
Content-Type
application/json
返回
返回 User 对象。
错误码
详见错误码。
Python示例
# 用于获取当前用户(机器人)详情。
import requestsurl = "https://api.sgroup.qq.com/users/@me"
Authorization = f"QQBot {这个内容填写第一期我们获取的调用凭证}"
herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders)print(response.json())
获取的数据包如下:
{"id": "11586990140073229091","username": "gitsub","avatar": "https://thirdqq.qlogo.cn/g?b=oidb&k=M5TibpXicS7Jt4z89BZxiamAA&s=100&t=1641802698","union_openid": "74F138F7F3AF68C4B8E8325013FCA295","union_user_account": ""
}

获取用户频道列表
接口
GET /users/@me/guilds
功能描述
用于获取当前用户(机器人)所加入的频道列表,支持分页。
当 HTTP Authorization 中填入 Bot Token 是获取机器人的数据,填入 Bearer Token 则获取用户的数据。
总的来说就是
Authorization = f"QQBot {这个内容填写第一期我们获取的调用凭证}"
你要获取机器人数据,格式为QQBot {这个内容填写第一期我们获取的调用凭证},如果获取用户数据,格式为Bearer 调用凭证
Content-Type
application/json
返回
返回 Guild 对象数组。
错误码
详见错误码。
Python示例
import requests"""
用于获取当前用户(机器人)所加入的频道列表,支持分页。当 HTTP Authorization 中填入 Bot Token 是获取机器人的数据,填入 Bearer Token 则获取用户的数据。
"""url = "https://api.sgroup.qq.com/users/@me/guilds"
Authorization = f"QQBot {这个内容填写第一期我们获取的调用凭证}"
headers = {"Content-Type": "application/json","Authorization": Authorization
}response = requests.get(url, headers=headers).json()
print(response)
获取的数据包如下:
[{"id": "696527283900292399","name": "鹅们的萌宠啦咔咔啦","icon": "https://groupprohead-76292.picgzc.qpic.cn/482231626508223/100?t=1626508224633","owner_id": "4828365788198541698","owner": false,"joined_at": "2021-12-08T16:12:31+08:00","member_count": 17,"max_members": 300,"description": "123"
}]
🧐这里需要注意,当你有多个频道时,你获取的数据包格式为:
[{你第一个频道的数据},{你第二个频道的数据},{...}]
当你想要获取其中某一个值时,例如 id 的值,可以使用:
response[0]['id']

获取频道详情
接口
GET /guilds/{guild_id}
🧐在获取频道列表的数据包后,数据包内包含了频道的 guild_id
功能描述
用于获取 guild_id 指定的频道的详情。
Content-Type
application/json
返回
返回 Guild 对象
错误码
详见错误码。
Python示例
import requests
"""
用于获取 guild_id 指定的频道的详情。
"""
url = f"https://api.sgroup.qq.com/guilds/{guild_id}"
Authorization = f"QQBot {这个内容填写第一期我们获取的调用凭证}"
herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()
print(response)
获取的数据包如下:
{"id": "123456","name": "xxxxxx","icon": "xxxxxx","owner_id": "xxxxxx","owner": false,"joined_at": "2022-01-13T11:02:21+08:00","member_count": 5,"max_members": 300,"description": "千江有水千江月,万里无云万里天"
}

获取子频道列表
接口
GET /guilds/{guild_id}/channels
🧐在获取频道列表的数据包后,数据包内包含了频道的 guild_id
功能描述
用于获取 guild_id 指定的频道下的子频道列表。
Content-Type
application/json
返回
返回 Channel 对象数组。
错误码
详见错误码。
Python示例
import requestsurl = f"https://api.sgroup.qq.com/guilds/{guild_id}/channels"
Authorization = f"QQBot {这个内容填写第一期我们获取的调用凭证}"
herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()
print(response)
获取的数据包如下:
[{"id": "xxxxxx","guild_id": "123456","name": "很高兴遇见你","type": 4,"position": 2,"parent_id": "0","owner_id": "0","sub_type": 0},{"id": "xxxxxx","guild_id": "123456","name": "🔒管理员议事厅","type": 0,"position": 1,"parent_id": "xxxxxx","owner_id": "0","sub_type": 0,"private_type": 1},{"id": "xxxxxx","guild_id": "123456","name": "🚪小黑屋","type": 0,"position": 2,"parent_id": "xxxxxx","owner_id": "0","sub_type": 0,"private_type": 0},{"id": "xxxxxx","guild_id": "123456","name": "新的子频道","type": 0,"position": 2,"parent_id": "123456","owner_id": "0","sub_type": 0,"private_type": 2}
]
🧐这里需要注意,当你有多个子频道时,你获取的数据包格式为:
[{你第一个频道的数据},{你第二个频道的数据},{...}]
当你想要获取其中某一个值时,例如 id 的值,可以使用:
response[0]['id']

获取子频道详情
接口
GET /channels/{channel_id}
🧐在获取子频道列表的数据包后,数据包内包含了频道的 channel_id
功能描述
用于获取 channel_id 指定的子频道的详情。
Content-Type
application/json
返回
返回 Channel 对象。
错误码
详见错误码。
Python示例
import requestsurl = f"https://api.sgroup.qq.com/channels/{channel_id}"
Authorization = f"QQBot {这个内容填写第一期我们获取的调用凭证}"
herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.get(url, headers=herders).json()
print(response)
获取的数据包如下:
{"id": "123456","guild_id": "xxxxxx","name": "很高兴遇见你","type": 4,"position": 2,"owner_id": "0","sub_type": 0,"private_type": 0,"speak_permission": 0,"application_id": "0"
}

创建子频道
接口
POST /guilds/{guild_id}/channels
功能描述
用于在 guild_id 指定的频道下创建一个子频道。
- 要求操作人具有管理频道的权限,如果是机器人,则需要将机器人设置为管理员。
- 创建成功后,返回创建成功的子频道对象,同时会触发一个频道创建的事件通知。
注意
公域机器人暂不支持申请,仅私域机器人可用,选择私域机器人后默认开通。
注意: 开通后需要先将机器人从频道移除,然后重新添加,方可生效。
Content-Type
application/json
参数
| 字段名 | 类型 | 描述 |
|---|---|---|
| name | string | 子频道名称 |
| type | int | 子频道类型 ChannelType |
| sub_type | int | 子频道子类型 ChannelSubType |
| position | int | 子频道排序,必填;当子频道类型为 子频道分组(ChannelType=4) 时,必须大于等于 2 |
| parent_id | string | 子频道所属分组ID |
| private_type | int | 子频道私密类型 PrivateType |
| private_user_ids | string 数组 | 子频道私密类型成员 ID |
| speak_permission | int | 子频道发言权限 SpeakPermission |
| application_id | string | 应用类型子频道应用 AppID,仅应用子频道需要该字段 |
返回
返回 Channel 对象。
错误码
详见错误码。
Python示例
import requestsurl = f"https://api.sgroup.qq.com/guilds/{guild_id}/channels"
Authorization = f"QQBot {你自己的鉴权}"data = {"name": "测试频道1",# 名字随意"type": 0,# 文字子频道"position": 1,"parent_id": "xxx","owner_id": "xxx","sub_type": 0,"private_type": 0
}herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.post(url, headers=herders, json=data).json()
print(response)
获取的数据包如下:
{"id": "xxxxxx","guild_id": "xxxxxx","name": "测试频道1","type": 0,"position": 1,"parent_id": "xxxxx","owner_id": "xxxxxx","sub_type": 0
}

修改子频道
接口
PATCH /channels/{channel_id}
🧐在获取子频道列表的数据包后,数据包内包含了频道的 channel_id
功能描述
用于修改 channel_id 指定的子频道的信息。
- 要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。
- 修改成功后,会触发子频道更新事件。
注意
公域机器人暂不支持申请,仅私域机器人可用,选择私域机器人后默认开通。
注意: 开通后需要先将机器人从频道移除,然后重新添加,方可生效。
Content-Type
application/json
参数
| 字段名 | 类型 | 描述 |
|---|---|---|
| name | string | 子频道名 |
| position | int | 排序 |
| parent_id | string | 分组 id |
| private_type | int | 子频道私密类型 PrivateType |
| speak_permission | int | 子频道发言权限 SpeakPermission |
🤗需要修改哪个字段,就传递哪个字段即可。
返回
返回 Channel 对象。
错误码
详见错误码。
Python示例
import requestschannel_id = "xxx"
url = f"https://api.sgroup.qq.com/channels/{channel_id}"
Authorization = f"QQBot xxx"data = {"name": "测试频道2",
}herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.patch(url, headers=herders, json=data).json()
print(response)
获取的数据包如下:
{"id": "xxxxxx","guild_id": "xxxxxx","name": "测试频道2","type": 0,"position": 1,"parent_id": "xxxxx","owner_id": "xxxxxx","sub_type": 0
}

删除子频道
接口
DELETE /channels/{channel_id}
🧐在获取子频道列表的数据包后,数据包内包含了频道的 channel_id
功能描述
用于删除 channel_id 指定的子频道。
- 要求操作人具有管理子频道的权限,如果是机器人,则需要将机器人设置为管理员。
- 修改成功后,会触发子频道删除事件。
注意
公域机器人暂不支持申请,仅私域机器人可用,选择私域机器人后默认开通。
注意: 开通后需要先将机器人从频道移除,然后重新添加,方可生效。
Content-Type
application/json
返回
成功返回 HTTP 状态码 200。
错误码
详见错误码。
Python示例
import requestschannel_id = "xxx"
url = f"https://api.sgroup.qq.com/channels/{channel_id}"
Authorization = f"QQBot xxx"herders = {"Content-Type": "application/json","Authorization": Authorization}response = requests.delete(url, headers=herders, json=data).json()
print(response)
注意
子频道的删除是无法撤回的,一旦删除,将无法恢复。

致谢和更新
文章持续更新,如果三连支持,速更!!!
请在评论区提出疑惑和建议
上次更新: 9/8/2024, PM
👻关于频道和子频道事件,它们基于websocket方法。因为目前在讲openapi方法调用QQ频道机器人,所以暂时跳过这部分,当然放心啦,三连我速更,肯定会讲啦。

文章内容都是连续的,如果你在本文没有找到解决办法,不如前往其他几期寻找答案吧😉
⬅️QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第一期]
➡️QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期]
相关文章:
QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]
QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期] 第二期介绍:频道模块之频道管理 目录 QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]第二期介绍:频道模块之频道管理获取用户详情获取用户频道列表获取频道详情获取子频道列表获…...
参赛心得和思路分享:2021第二届云原生编程挑战赛2: 实现一个柔性集群调度机制
关联比赛: 2021第二届云原生编程挑战赛2:实现一个柔性集群调度机制 参赛心得 历时快两个月的第二届云原生编程挑战赛结束了,作为第一次参赛的萌新,拿下了28名的成绩,与第一名差了19万分,因为赛制时间太长,…...
具体函数的卡诺图填入
目录 用卡诺图表示逻辑函数 基本步骤 例子1 例子2 例子3 用卡诺图表示逻辑函数 基本步骤 例子1 由真值表得卡诺图。 在函数值为1的地方在卡诺图上画上1。 例子2 例子3 非标准与或式,要找到公共部分。 将AB所在的那一行填上1。 将A非D的那个部分也填上1。 再…...
STM32 HAL freertos零基础(六)计数型信号量
1、计数型信号量 计数型信号量(Counting Semaphore)是另一种类型的信号量,它可以保持一个大于等于0的整数值,这个值表示可用资源的数量。本质上相当于队列长度大于1得队列。经典问题就是剩余车辆统计,出入车辆,车辆数据可以实时更新。 2、相关API函数 xSemaphoreCreat…...
Dynamics CRM Ribbon Workbench-the solution contains non-entity components
今天在一个低版本的环境里准备用Ribbon Workbench去编辑一个按钮时,遇到了如下错误 一开始没当回事,以为是我的解决方案问题,去检查了下,只有一个组件,并且哪怕我把组件换成了某个实体也不行,尝试了其他任何…...
谷歌对抗司法部:为什么谷歌的“数百个竞争对手”说法站不住脚
随着谷歌反垄断陪审团审判的进行,谷歌声称美国司法部对广告技术市场的看法狭隘,并且广告商和出版商有很多替代选择。然而,证据并不支持这一说法。 谷歌误导性地声称有“数百个竞争对手。” 虽然存在许多广告技术提供商,但谷歌在…...
重生奇迹MU 沉迷升级的快感 法魔升级机器人
重生奇迹MU是一款以升级为主要玩法的游戏。升级是游戏基础,也是最重要的部分。通过升级,玩家可以获得更多的基础属性奖励和自由点数奖励,同时还能够穿戴最好的装备和翅膀。因此,升级在游戏中具有极其重要的地位。 史上升级最快的…...
从地图到智能地图:空间索引技术如何改变我们的世界
图源:WL 为什么空间索引很有用? 在处理地理空间数据时,空间索引是一个至关重要的功能,它决定了我们如何高效地从海量的地理数据中检索出所需的信息。想象一下,如果你正在处理一个包含数千万乃至数亿条记录的数据库,…...
深入理解AI Agent架构,史上最全解析!赶紧码住!
AI Agent框架(LLM Agent):LLM驱动的智能体如何引领行业变革,应用探索与未来展望 1. AI Agent(LLM Agent)介绍 1.1. 术语 Agent:“代理” 通常是指有意行动的表现。在哲学领域,Agen…...
苹果iOS/ iPadOS18 RC 版、17.7 RC版更新发布
iPhone 16 / Pro 系列新机发布后,苹果一同推出了 iOS 18 和 iPadOS 18 的 RC 版本,iOS 18 RC 的内部版本号为22A3354,本次更新距离上次发布 Beta/RC 间隔 12 天。 在 iOS 18 中,苹果给我们带来了 Apple Intelligence,这…...
CAN集线器(工业级、隔离式)
型号: MS-HUB-C 概述 MS-HUB 是一款可通过一路 CAN ,一路 RS-232为主口扩展出 7 路 CAN 从口的工业级光电隔离型 CAN 分配器。可以有效的实现 CAN 网络的中继、扩展与隔离。采用先进的自动流控技术自动侦测CAN 信号流向。MS-HUB 具备光电隔离功能&#x…...
代码随想录训练营 Day57打卡 图论part07 53. 寻宝(prim,kruskal算法)
代码随想录训练营 Day57打卡 图论part07 卡码53. 寻宝 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间,路途距离不同,…...
Hibernate QueryPlanCache 查询计划缓存引发的内存溢出
目录 1.排查方式2.结论3.解决办法 前言:在生产环境中有一个后端程序多次报oom然后导致程序中断。 1.排查方式 通过下载后端程序产生的oom文件,将oom文件导入MemoryAnalyzer程序分析程序堆内存使用情况。 1、将oom文件导入MemoryAnalyzer后可以看到概览信…...
前端开发的观察者模式
什么是观察者设计模式 观察者模式(Observer Pattern)是前端开发中常用的一种设计模式。它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,其所有依赖对象都能收到通知并自动更新。观察者模式广泛应用于事件驱动的系…...
Pycharm 输入三个引号没有自动生成函数(方法)注释
配置项路径:pycharm–>Settins–>Tools–>Python Integrated Tools–>Docstrings–>Docstrings format选择对应的工程,如果有多个工程的话将 Docstrings format 的值从 Plain 换成 reStructuredText...
lammps后处理:多帧孔洞体积和孔隙率的计算
本文介绍lammps后处理技巧:多帧孔洞体积和孔隙率的计算方法。 在前面的专栏中,已经介绍了单帧孔洞体积的计算方法,有不少粉丝朋友咨询多帧孔洞体积的计算方法。 在上一次案例代码的基础上,稍加修改,添加一个for循环遍历所有的帧即可实现多帧孔洞体积的计算。 计算的结果…...
免费且实用:UI设计常用的颜色参考网站和一些Icon设计网站
用心去分享!请给我点个关注和点赞收藏!谢谢各位努力的人才! 1.在UI设计的时候,没有灵感,怎么办?可以参考这个网站(需要魔法能量) 网址如下: Color Hunt - Color Palette…...
log4j日志封装说明—slf4j对于log4j的日志封装-正确获取调用堆栈
日志是项目中必用的东西,日志产品里最普及应该就是log4j了。(logback这里暂不讨论。) 先看一下常用的log4j的用法,一般来说log4j都会配合slf4j或者common-logging使用,这里已slf4j为例。添加gradle依赖: dependencies { compile(l…...
JVM面试真题总结(六)
文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 解释GC的标记-整理算法及其优点 GC(垃圾收集ÿ…...
C语言代码练习(第十八天)
今日练习: 48、猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

