WeChat机器人折腾不完全指南

引子

今天看后台总结,已经来论坛30天,阅读1天了 :thinking:

俺也算是论坛老人了,于是,俺觉得是时候得整点干货才能匹配俺的身份(bushi)
好歹俺也就两件事不会,这也不会,那也不会,想了想,俺决定把之前折腾wechat机器人项目的屎山代码整理整理发一下吧。

正文

一 什么是WeChat

警告!警告!警告!

前不久俺还收到了官方的亲切问候,所以请阅读免责声明后继续:

免责声明

本工具仅供学习和技术研究使用,不得用于任何商业或非法行为,否则后果自负。

本工具的作者不对本工具的安全性、完整性、可靠性、有效性、正确性或适用性做任何明示或暗示的保证,也不对本工具的使用或滥用造成的任何直接或间接的损失、责任、索赔、要求或诉讼承担任何责任。

本工具的作者保留随时修改、更新、删除或终止本工具的权利,无需事先通知或承担任何义务。

本工具的使用者应遵守相关法律法规,尊重微信的版权和隐私,不得侵犯微信或其他第三方的合法权益,不得从事任何违法或不道德的行为。

本工具的使用者在下载、安装、运行或使用本工具时,即表示已阅读并同意本免责声明。如有异议,请立即停止使用本工具,并删除所有相关文件。

二 项目地址

三 简单上手

1 前置工作

  • 一台windows系统的电脑
  • 安装anaconda,并激活环境。(建议,非必需)
  • python环境要求3.9及以上
  • 安装指定版本wechat,并关闭更新。
  • 注册一个小号,并实名认证。

2 客户端配置

安装WeChatFerry
pip install --upgrade wcferry
安装WeChatRobot

如果你的系统是amd64位,可直接点击下载:最新版本
安装对应版本的微信:点击下载
注意:WeChat、WechatFerry以及WechatRobot三者的版本要一致否则会报错

python -m pip install -U pip
pip install -r requirements.txt
# ChatGLM 还需要安装一个 kernel
ipython kernel install --name chatglm3 --user
初次运行
python ./main.py

如果你配置的环境和软件版本都没有问题,wechat程式会被自动拉起,请使用小号登录,程式会在目录下自动生成config.yaml
这时机器人是无法正常工作的,还需要ctrl+c退出进程后配置文件。

配置文件
  • config.yml
    设置机器人触发机制,群白名单,接入大模型的配置都在这里。
  • robot.py
    消息处理程式,你可以自定义消息处理方式,如关键词触发,可玩性很高。
  • main.py
    在这里添加定时任务,如每天早上定时发送天气预报和新闻。
正常运行
python ./main.py

现在,你可以用你的机器人上网冲浪了!

当然,各位佬可以直接参照WechatFerry文档建立自己的Robot。我写的robot.py已经放下面了,参照官方给的模板修补得来,俺是编程新手,这算是俺真正意义上接触的第一个项目,代码水平非常一般,欢迎批评指正 :clown_face:

四 我的代码

我前后花了大概2个月研究这个项目,最开始啥也不会,连import都不晓得是干啥的,最开始用gpt写一个请求天气的代码都要半天,就这么摸爬滚打写了下面一堆屎山代码,啧啧啧,居然有1k多行(看看这一大堆库 :joy:)。
代码里我蚂蚁搬家自己加了35个功能,但因为我有2个月没有看了,可能有部分API失效了,大家如果感兴趣的话还请自行测试。

12 个赞

有木有可以获取公众号文章的功能~

如果是用msg接收推文的话,可不可以接收到一个推文的多个文章和连接~~

1 个赞

公众号这趴我没弄过,不是很清楚,我弄的这个项目好像不行,你可以看看itchat,功能更多,不过要收费

1 个赞

啥是wechat :rofl:

1 个赞

微信

1 个赞

Joe,我搞了一个,一直在整理代码,过几天开源。
稳定运行2个月了

1 个赞

是用WEB协议还是PC协议的

不建议用大号搞,是真的会封号

PC协议,WeChatFerry之前是被批量封过一次号的。不如web协议安全的

我的微信机器人就是一个纯收公众号消息,转发到api入库,转rss用的

发送消息的话,就一个代替邮件通知

我用的不重,不搞那种什么自动拉人进群,自动回复啥的,应该还好吧

WEB协议主要是经常掉线,而且现在收到的公众号消息不完整,一次推多个文的时候智能拿到第一个

公众号转RSS可以考虑下这个项目GitHub - cooderl/wewe-rss: 🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)v2.x

佬,有什么快速迁移方案吗?
现在我只能一个一个的把文章分享出来,提取那个添加公众号的url

你要多少公众号啊,一篇文章的链接可以读取整个公众号的文章

转要RSS嘛,肯定就是想把所有公众号都挪过去呀

是一个大智若愚的方案。
鼠标键盘自动化方案,模拟人手工获取公共号当天所有文章链接,然后批量下载文章。

相当硬核,一些RPA产品也是这么做的,期待发布

基于键鼠自动化的微信公众号RSS思路(高端的黑客往往采用最朴素的方式 - 软件分享 - LINUX DO

抛砖引用,请大佬批评指正

1 个赞

会封号的 :cold_face:

最难的就是封号问题

我用那个wxhelper,刚把3.9.9.43的所有偏移搞定特么就给我更新来个3.9.10.18,特么后来我发发现我账号被灰度了,其他人都还是3.9.9.43。。

1 个赞