深入解析oicq项目中的QQ Web API使用指南
oicq Tencent QQ Bot Library for Node.js 项目地址: https://gitcode.com/gh_mirrors/oi/oicq
前言
在开发QQ机器人或相关应用时,我们经常需要获取QQ用户信息、群组资料等数据。oicq项目提供了一套完整的Web API接口,可以帮助开发者实现这些功能。本文将详细介绍如何利用oicq项目中的Web API来获取各类QQ相关信息。
Web API基础概念
Web API是指基于HTTP协议的网络应用程序接口,通过发送HTTP请求与服务器交互获取数据。在oicq项目中,这些API主要用于获取QQ平台的各种信息,如用户资料、群组信息等。
使用这些API需要两个关键要素:
- Cookie - 用于身份验证
- CSRF-Token(BKN) - 防止跨站请求伪造的安全令牌
获取认证信息
在使用Web API前,首先需要获取必要的认证信息:
let domain = ""; // 支持多个域名,如qun.qq.com
const cookie = client.cookies[domain];
const bkn = client.bkn;
获取到这些信息后,需要将它们设置在HTTP请求头部中。
常用Web API详解
1. 用户信息相关API
获取QQ等级信息
GET https://club.vip.qq.com/api/vip/getQQLevelInfo?requestBody={"iUin":QQ号}
需要设置Cookie,域名为vip.qq.com
获取QQ资料
GET https://cgi.find.qq.com/qqfind/buddy/search_v3?keyword=QQ号
需要设置Cookie
获取QQ头像
GET https://q1.qlogo.cn/g?b=qq&s=尺寸&nk=QQ号
无需认证,可直接获取
2. 群组信息相关API
获取群资料
GET https://qinfo.clt.qq.com/cgi-bin/qun_info/get_group_info_all?gc=群号&bkn=BKN值
特点:即使是陌生群也可以获取信息
获取群设置
GET https://qinfo.clt.qq.com/cgi-bin/qun_info/get_group_setting_v2?gc=群号&bkn=BKN值
注意:必须是群成员才能使用
获取群成员列表
GET https://qinfo.clt.qq.com/cgi-bin/qun_info/get_group_members_new?gc=群号&bkn=BKN值
必须是群成员才能使用
获取群头像
GET https://p.qlogo.cn/gh/群号/群号/尺寸
无需认证,可直接获取
获取群历史头像
GET https://p.qlogo.cn/gh/群号/群号_序号/尺寸
无需认证,可直接获取
3. 群管理相关API
获取群操作记录
GET https://qinfo.clt.qq.com/cgi-bin/qun_info/get_sys_msg?gc=群号&bkn=BKN值
注意:必须是管理员才能使用
开关匿名功能
GET https://qqweb.qq.com/c/anonymoustalk/set_anony_switch?bkn=BKN值&value=1或0&group_code=群号
需要设置Cookie,域名为qqweb.qq.com
获取群荣誉信息
GET https://qun.qq.com/interactive/qunhonor?gc=群号
需要设置Cookie,域名为qun.qq.com
获取精华消息
GET https://qun.qq.com/cgi-bin/group_digest/digest_list?bkn=BKN值&group_code=群号&page_start=页数&page_limit=每页数量
注意:必须是群成员,每页数量不能超过50
获取群公告
GET https://web.qun.qq.com/cgi-bin/announce/get_t_list?bkn=BKN值&qid=群号&ft=23&s=-1&n=20
需要设置Cookie,域名为qun.qq.com
发布群公告
POST https://web.qun.qq.com/cgi-bin/announce/add_qun_notice?bkn=BKN值
POST数据格式:
qid=群号&bkn=BKN值&text=内容&pinned=0&type=1&settings={"is_show_edit_card":1,"tip_window_type":1,"confirm_required":1}
更换群头像
POST http://htdata3.qq.com/cgi-bin/httpconn?htcmd=0x6ff0072&ver=5520&ukey=SKY值&range=0&uin=用户QQ号&seq=1&groupuin=群号&filetype=3&imagetype=5&userdata=0&subcmd=1&subver=101&clip=0_0_0_0&filesize=字节数
POST数据为图片字节集
4. 综合搜索API
POST https://find.qq.com/proxy/domain/cgi.find.qq.com/qqfind/find_v11?backver=2
POST数据格式:
bnum=15&pagesize=15&id=0&sid=0&page=0&pageindex=0&ext=&guagua=1&gnum=12&guaguan=2&type=2&ver=4903&longitude=116.405285&latitude=39.904989&lbs_addr_country=中国&lbs_addr_province=北京&lbs_addr_city=北京市&keyword=QQ号&nf=0&of=0&ldw=BKN值
特点:可以同时搜索QQ号和群号,且包含个性签名等更多信息
使用注意事项
- 认证信息安全性:Cookie和BKN是敏感信息,不应泄露
- 请求频率限制:避免高频请求,可能触发风控
- 权限限制:部分API需要特定身份(如群管理员)才能使用
- 数据格式:注意参数格式和编码,特别是POST请求
- 错误处理:合理处理API返回的错误信息
结语
oicq项目提供的Web API接口功能丰富,覆盖了QQ平台的大部分信息获取需求。通过合理使用这些API,开发者可以构建功能强大的QQ相关应用。在实际开发中,建议先测试各个API的响应和限制,再根据业务需求进行整合。
希望本文能帮助你更好地理解和使用oicq项目中的Web API功能。如有任何疑问或发现新的有用API,欢迎交流分享。
oicq Tencent QQ Bot Library for Node.js 项目地址: https://gitcode.com/gh_mirrors/oi/oicq
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考