三枚怀旧Q号搭载Node.js测试,实现全天监控企鹅群聊

1,205 阅读5分钟

背景: 开始准备Fiddler、Reqable抓手游助手APP的包顺便探索网络游戏数据的传输,看能不能写自动游戏脚本终结重复枯燥的手游。证书配置卡住,捕获的URL中没有头绪。
       看到桌面QQ群又要统计群友是否收到回复,我是有全部群友名单的,于是走上代码监听QQ消息之路,搜了一圈发现作者2年前写的oicq,于是...让前端(含node.js再次伟大),办公自动化 先从QQ练手...

经测试2024年2月27日 20:43:19 代码仍然有效,如遇问题欢迎评论区留言
特别注意:测试前IP变化,会被安全中心风控。如在固定位置长期登录,更容易一次成功。

🫠、效果演示

时间太晚了,群比较安静。 使用另外一个号发起私聊。 聊天演示效果.gif

数据格式(还有丰富的格式可以去阅读源码): 图片.png

一、准备动手

执行环境: Node.js
需要模块: oicq 基于TypeScript
测试说明: 登录有扫码登录(不稳定)滑块验证登录(推荐) 两种方式。

推荐使用 滑块验证登录(推荐) 核心代码如下:

//滑块验证登录
const { createClient } = require("oicq")

let QQ号 = '你的QQ号'
let 密码 = '你的密码'

const client = createClient(QQ号)

client.on("system.login.slider", function (e) {
  console.log("复制ticket输入:")
  process.stdin.once("data", ticket => this.submitSlider(String(ticket).trim()))
}).login(密码)

二、执行代码

1.输入QQ号和密码。使用node命令运行当前代码,以下为测试号~

图片.png

获取程序显示URL到浏览器,如上图红框 ssl.captcha.qq.com/template/......
该地址为[官方]腾讯多端通用滑块验证码页面,修改密码后验证也是这个页面。

图片.png

需要人工辅助验证!!!
需要人工辅助验证!!!
需要人工辅助验证!!!

2.[GIF演示]按F12在浏览器控制台获取属性ticket的值, 操作如下动图演示:
获取ticket.gif

3.[GIF演示]在15秒内将复制ticket的值粘贴在程序下方 按回车。自动捕捉私聊和群消息。

聊天演示.gif

三、错误处理💢

1.oicq文档中扫码登陆不能成功

const { createClient } = require("oicq")
const account = 147258369
const client = createClient(account)

client.on("system.online", () => console.log("Logged in!"))
client.on("message", e => {
  console.log(e)
  e.reply("hello world", true) //true表示引用对方的消息
})

client.on("system.login.qrcode", function (e) {
  //扫码后按回车登录
  process.stdin.once("data", () => {
    this.login()
  })
}).login()

注意:扫码登录现在仅能在同一ip下进行,建议使用密码登录,只需验证一次设备便长期有效

出现提示:[登录失败]你太久没有操作,请重新登录。
出现提示:[禁止登录]你当前使用的QQ版本过低,请前往QQ官网im.qq.com下载最新版QQ后重试。
解决方案:模拟虚拟物理设备对应QQ版本过低,或相关源代码未更新,可能是企鹅内部的接口更新,毕竟oicq作者快两年没有更新了。
推荐使用 滑块验证登录(推荐)

图片.png

2.新注册的QQ号无法成功😱

图片.png

解决方案:新注册QQ号的安全等级较高,会被安全中心拦截(目前尝试在手机端关闭安全检查无效),先用注册的老QQ试试。

—————————————————————————————————————————————————————

四、感谢&参考

1.《oicq文档npm地址》
找遍了npmjs,最近相关的就是 2 years ago,作者啊你快回来

图片.png

2.github的issues讨论区

507从中获得较大启发,暂未做对照实验证明非帐号本身问题,一定需要修复
图片.png

3.《【物联网服务NodeJs-5天学习】第三天实战篇④ ——QQ机器人,实现自动回复、重要提醒》
2023-03-12发布。能找到比较新的文章,从中快速发现oicq的效果演示,增强oicq的测试信心

4.动图制作使用ScreenToGif
最近更新了 2.40.1,由Nicke Manarin (巴西)制作的开源好用的动图制作软件!

五、项目小结

第一步捕获了信息,第二步需要仔细阅读源码,分析文件结构,再进行数据处理。
先抓企鹅,再抓绿泡泡。办公自动化 先从QQ练手
🤪同新手,欢迎大家交流指点。

🤪🤪特别说明:封面及题目使用AI生成
原题:《献出三个老QQ,测试Node.js监听QQ聊天消息》
AI调整:《三枚怀旧Q号搭载Node.js测试,实现全天监控企鹅群聊》

即时AI_img.png

六、最新学习反馈

2024年2月27日 18:08:49 周二 5班

问题1.安装pnpm install oicq报错,淘宝npm源镜像网站过期切换。
我们安装的很多模块,通过淘宝提供的网站进行中转下载。

// 1. 切换新的npm代码仓库源 复制以下指令在控制台执行
pnpm config set registry https://registry.npmmirror.com

// 2.查看我们pnpm的配置
pnpm config list

图片.png

问题2.使用验证码还是登录不了QQ,始终被安全中心拦截。
将最新的device.js 覆盖到node_modules/oicq/lib/core/目录下

图片.png 在VScode命令行执行 pnpm i 加载代码。具体提示以实际为准。 图片.png

成功后重新按照以上步骤执行代码,验证 复制ticket。

截图待补充!

因为IP变动的原因,我们配置的的是虚拟设备,如有出现 新的安全连接,复制到浏览器扫码。
等待1分钟后再,重复执行代码。
完全成功的标致!获取聊天列表。 图片.png