=Start=
缘由:
整理一下最近做的QQ机器人相关的资料,方便需要的同学参考。
正文:
参考解答:
1、酷Q
以前:基于 SmartQQ 协议(2019年1月3日该协议已废弃);
现在:基于 手机QQ 协议;
以前的很多QQ机器人都是通过 WebQQ(SmartQQ协议) 和QQ进行的交互(在GitHub上可以搜到很多),但当2019年1月3日该协议废弃之后,现在还可用的基本都是基于酷Q来实现的QQ机器人。
酷Q 扮演着「无头 QQ 客户端」的角色,它进行实际的QQ消息、通知、请求的接收和发送,更多功能需要在它的基础上安装“应用/插件”来实现。接下来我们介绍一个简单易用的酷Q插件。
2、CoolQ HTTP API 插件
此插件通过 HTTP 或 WebSocket 对酷 Q 的事件进行上报以及接收请求来调用酷 Q 的 DLL 接口,从而可以使用其它语言编写酷 Q 插件。支持 Windows 7 和 Windows Server 2008 及更新版本,也可以运行在 Wine、Docker。
该插件起到的主要是接收、解析、转发QQ消息的作用。
3、简单使用样例
情形一:Windows系统
①下载——去「[发布]酷Q Air」页面下载酷Q Air;
②解压——下载完请解压后再从解压出来的文件中打开主程序,请不要直接从解压软件中打开。
③登录QQ——初次使用时软件会下载需要的程序文件,更新完成后,AIR版会直接进入登录界面,PRO版会进入提示授权界面,如果你已经有授权码,复制后粘贴到授权栏就可以进入登录界面了。
④安装CoolQ HTTP API 插件——先到 Releases 页面下载最新的 cpk 文件放到 酷Q 的 app 文件夹;(在登录成功后会看到你机器人的头像)右键单击该头像以显示酷Q的主菜单,然后在其中的「应用管理」处可以在此进行应用的管理,启用对应的插件即可。
注意!如果 酷Q 启动时报错说插件加载失败,或者系统弹窗提示缺少 DLL 文件,则需要安装 VC++ 2017 运行库(一定要装 x86 也就是 32 位版本!),如果你的系统是 Windows 7 或 Windows Server 2008、或者安装 VC++ 2017 运行库之后仍然加载失败,则还需要安装 通用 C 运行库更新,在这个链接里选择你系统对应的版本下载安装即可。如果此时还加载失败,请尝试重启系统。
⑤接收/发送QQ消息——在启用插件后,它将开启一个 HTTP 服务器来接收请求,默认监听 0.0.0.0:5700
,首次启用会生成一个默认配置文件,在 酷Q 的 data\app\io.github.richardchien.coolqhttpapi\config
文件夹中,文件名为 <user_id>.json
(<user_id>
为登录的 QQ 号),使用 JSON 格式填写。关于配置项的说明,见 配置。
- 接收。酷Q 收到的消息、事件会被 POST 到配置文件中指定的
post_url
,为空则不上报。 - 发送。通过
http://192.168.1.123:5700/
即可调用 酷Q 的函数,例如http://192.168.1.123:5700/send_private_msg?user_id=123456&message=你好
,注意这里的192.168.1.123
要换成你自己电脑的 IP,如果在本地跑,可以用127.0.0.1
,user_id
也要换成你想要发送到的 QQ 号。具体的 API 列表见 API 描述。如果需要使用 HTTPS 来访问,见 HTTPS。
情形二:Linux/Mac系统
因为酷Q是Windows上的一个应用,所以可以在Windows系统上运行会比较简单直接。但借助于 Docker 我们也可以在大部分操作系统下使用最新版本的 酷Q 。(不过要注意的是:由于 wine 技术原理为 Windows 系统,实现与原生系统尚有差距,部分应用运行或有兼容性问题。)
①先安装docker
②在安装 docker 后,在命令行中键入以下命令下载 酷Q Docker 镜像:
docker pull coolq/wine-coolq
下载后,在任意目录创建一个空文件夹,用于持久化存放 酷Q 数据:
mkdir /root/coolq-data # 任意路径均可
然后运行 酷Q 镜像:
docker run -ti –name=coolq -d -p 8080:9000 -p 5700:5700-v /root/coolq-data:/home/user/coolq -e VNC_PASSWD=12345678 -e COOLQ_ACCOUNT=123456 coolq/wine-coolq
其中部分参数根据自己的需求替换,参见下表:
参数含义 | 参数示例 |
远程监听端口 | 8080 |
数据存放位置 | /root/coolq-data |
远程访问密码 | 12345678 |
机器人帐号 | 123456 |
运行如果没有报错,则说明已启动成功。此时,在浏览器中访问 http://你的服务器IP:你的端口 即可看到远程操作登录页面,输入密码,即可看到 酷Q Air 的登录界面啦。 在登录后,右键点击悬浮窗 -> 昵称 -> 勾选「自动登录」,即可保证 酷Q 能自动登录。
【查看运行状况】
docker logs coolq
【启动/停止服务】
docker start coolq
docker stop coolq
③安装CoolQ HTTP API 插件 ④接收/发送QQ消息 在本地起一个简单的HTTP Server,监听在配置文件中设置的post_url地址,就可以在本地查看QQ收到的消息了。一个简单的Python Flask HTTP Server如下:
#!/usr/bin/env python
# coding=utf-8
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/", methods = ['POST','GET'])
def idx():
if request.method == "POST":
print( 'Headers: {0}'.format(request.headers) )
print( 'Data: {0}'.format(request.get_data()) )
return 'POST'
if request.method == "GET":
print( 'Headers: {0}'.format(request.headers) )
print( 'Data: {0}'.format(request.get_data()) )
return 'GET'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5702, debug=True)
参考链接:
- 酷Q是怎样获取QQ聊天消息的?
https://www.zhihu.com/question/55241147 - [技巧]酷Q 使用手册 基础篇
https://cqp.cc/t/35718 - [发布]酷Q Air 5.14
https://cqp.cc/t/23253#pid873447 - [发布]酷Q on Docker 2.0
https://cqp.cc/t/34558 - CoolQ HTTP API 插件
https://cqhttp.cc/docs/4.10/#/Docker - ==
- QQ聊天记录多角度分析Python实现
- QQ 聊天记录简单数据分析
- QQ群聊天记录分析
=END=
《 “QQ机器人” 》 有 8 条评论
丢失msvcp140.dll,msvcp110.dll问题解决
https://blog.csdn.net/lhh08hasee/article/details/79270949
`
windows 2008 无法启动此程序 因为丢失 msvcp140.dll
所有msvcp类文件都是微软VC++运行库的文件,140版本号代表是VC++2015的文件,缺少这个就安装VC++2015一般即可解决;
如果是32位程序出现这个提示就安装x86版VC++2015,64位程序就安装x64版;
安装哪个版本跟你的系统是否64位版并没有关系!是要看调用VC++的那个程序本身是32位还是64位!比如64位的系统安装了32位的游戏,就需要相应安装32位的VC++。
如果不知道运行的程序是32位还是64位可以两个版本都装,不影响。
`
Visual C++ Redistributable for Visual Studio 2015
https://www.microsoft.com/en-US/download/details.aspx?id=48145
https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
最新Apache安装丢失VCRUNTIME140.DLL的解决办法
https://my.oschina.net/chinacion/blog/647641
OllyDbg截取PC WeChat的数据库key
https://www.cnblogs.com/bh4lm/p/9334891.html
解密Windows微信聊天记录数据库
https://github.com/xalley/wechat-db-decrypt
手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
http://www.52im.net/thread-1992-1-1.html
A complete and graceful API for Wechat. 微信个人号接口、微信机器人及命令行微信,三十行即可自定义个人号机器人。
https://github.com/littlecodersh/ItChat
Python网页微信API
https://github.com/liuwons/wxBot
微信公共帐号自动回复机器人 A Node.js robot for wechat.
https://github.com/node-webot/weixin-robot
基于 php 7 的 web 微信机器人(The best wechat robot base on web api!)
https://github.com/Hanson/vbot
http://create.hanc.cc/vbot/
微信web版API的go实现,模拟微信网页版的登录/联系人/消息收发等功能,可以完全接管微信收到的消息, 并定制自己的发送内容
https://github.com/songtianyi/wechat-go
微信群机器人,在微信群上每天早晨根据天气提醒大家穿衣或带伞, 每隔一段时间提醒喝水,结合百度ai的API做一点geek的事
https://github.com/wistbean/wechatGroupRobot
Python实现微信防撤回
https://mp.weixin.qq.com/s/3uhEIslW4kvCVhBsAFNXFQ
`
1.微信撤回消息实现原理
我们先来了解一下微信撤回消息的原理:
其实微信撤回消息原理就是操作者在点击撤回的时候,客户端会自动发一条系统消息:“xxx撤回了一条消息”,然后对方app端收到消息后解析,替换原消息,改个显示的样式即可
2.找到被撤回消息
根据抓取正常消息和撤回消息的内容我们发现规则:撤回消息中会包含之前被撤回的那条消息的msgid,那我们只要找到之前那条消息就可以了,而wxpy模块默认为我们缓存了最近的200条消息,所以我们只要遍历这些历史消息然后比较msgid就可以找到被撤回的那条消息啦!
如果你微信消息太过频繁,2分钟之内消息数量超过200,则可以将max_history设置大些。
`
https://github.com/pig6/wxrobot
https://wxpy.readthedocs.io/zh/latest
一键提取微信聊天记录,生成HTML、Word文档永久保存,还能生成微信年度聊天报告
https://mp.weixin.qq.com/s/d7K6np7wd3kPLONKikGe5Q
`
不知道生活中你有没有遇到过这种情况,聊天记录不完整,有的在手机上,有的在电脑上,搜索起来很烦。那有没有一种办法可以把微信聊天记录统一呢?当然是有的。下面,就让我们一起来看一下怎么操作。
注意要先把微信聊天记录从手机迁移到电脑哟。迁移时要保证电脑和手机所处同一个局域网。操作步骤:手机微信->我的->设置->聊天->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启电脑微信让它重新加载聊天记录)
安卓: 手机微信->我->设置->聊天->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)否则
iOS: 手机微信->我->设置->通用->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)否则
迁移而不是备份、迁移而不是备份、迁移而不是备份;手机微信发起迁移功能、手机微信发起迁移功能、手机微信发起迁移功能;迁移完成后重启微信、迁移完成后重启微信、迁移完成后重启微信,重要的事情说三遍
`
我把我和我老婆从认识到现在的聊天记录跑了个词云出来
https://www.v2ex.com/t/999939
https://github.com/LC044/WeChatMsg
https://github.com/fuqiuai/wordCloud
https://github.com/silsuer/wordcloud
微信聊天记录只是备份就太无聊了,一键生成属于自己的词云图,让我们玩点有意思的
https://mp.weixin.qq.com/s/kS1De6DpNqX_4M_0WTkdhA
`
# 原理
制作其实是用了Python的wordcloud库,把解码出来的微信聊天记录,当成数据文本,跑了一遍,根据统计的词频,生成词云图。
`
获取微信账号信息(昵称/账号/手机/邮箱/数据库密钥/wxid);PC微信数据库读取、解密脚本;聊天记录查看工具;聊天记录导出为html(包含语音图片)。支持多账户信息获取,支持所有微信版本。
https://github.com/xaoyaoo/PyWxDump
`
更新计划【由于家里有事,这些计划(除8、9、10)将会在12.30号前统一更新】
1.每个人聊天记录分析,生成词云。
2.分析每个人每天的聊天数量,生成折线图(天-聊天数量)
3.分析不同的人的月聊天数量,年聊天数量,生成折线图
4.生成年度可视化报告
5.创建GUI图形界面,方便使用
8.增加企业微信的支持
9.增加获取实时聊天记录的功能
10.聊天记录关键字搜索 或者按时间点搜索列出所有的联系人记录就nice了
11.增加好友的信息获取
如有问题,请先查看:FAQ 是否有答案。
# 利用场景
1. 钓鱼攻击(通过钓鱼控到的机器通常都是登录状态)
2. 渗透到运维机器(有些运维机器会日常登录自己的微信)
3. 某些工作需要取证(数据库需要拷贝到本地)
4. 自行备份(日常备份自己留存)
5. 等等……………
`
一键导出PC微信聊天记录工具
https://github.com/git-jiadong/wechatDataBackup
`
* 基于wails开发 + React前端,实现PC端微信聊天记录一键导出功能。
* 导出后数据可以做永久化保存,即使微信停止支持,聊天记录也可以随时查看。
* 前端界面尽量与微信界面保持一致,减少使用成本。
* 理论上支持所有Windows 32/64位微信版本。
常见问题
Q: 支持手机端的聊天记录备份吗?
A: 手机端可以使用聊天数据迁移功能,将手机的数据迁移到电脑后再将数据导出。 微信迁移聊天记录功能
Q: 导出后界面是空白的、导出的数据比PC微信里面看到的少,数据不完整
A: 这是由于可能数据存在于内存中还没有回写到磁盘导致的,退出微信时会将内存的数据全部回写到磁盘,导出数据时最好退出重新登陆一次微信,保证数据都在磁盘中再导出即可。
Q: 有些图片、视频打不开
A: 这是电脑端微信没有点开过这个消息,默认只加载了预览图而已,如果手机有打开过可以把手机的记录迁移到电脑,迁移后重新退出登陆一次微信导出即可。
Q: Win7电脑不能使用
A: Win7电脑需要安装WebView2运行时才能正常使用。github release版本做了Windows版本限制,Win7用户请安装专属的版本
`