WeChatFerry
WeChatFerry 是一款 Hook PC WeChat 构建的微信机器人项目。
项目地址:
github: https://github.com/lich0821/WeChatFerry
wcfhttp
wcfhttp 是 WeChatFerry 的客户端,通过 http api 方式通讯。方便任何语言,任何形式与 WeChatFerry 通讯。
# 安装
pip install --upgrade wcferry
# 启动
wcfhttp --cb http://your_host:your_port/callback
callback
callback 可以是本机也可以远端。
doc 中描述机器人通过 PSOT 回调 callback 地址。
用 PHP 接收 callback post 数据有一点要注意。数据并不在 $_POST 数组中,而是在 php://input 中,用 file_get_contents('php://input') 来接收数据。
doc
wcfhttp 运行成功后,控制台打印 doc 地址:http://0.0.0.0:9999/docs。
所有的API DOCS里都有,页面上还可以做简单的Execute
,十分方便。
msg-types 接口 返回数据 demo
{
"status": 0,
"message": "成功",
"data": {
"types": {
"0": "朋友圈消息",
"1": "文字",
"3": "图片",
"34": "语音",
"37": "好友确认",
"40": "POSSIBLEFRIEND_MSG",
"42": "名片",
"43": "视频",
"47": "石头剪刀布 | 表情图片",
"48": "位置",
"49": "共享实时位置、文件、转账、链接",
"50": "VOIPMSG",
"51": "微信初始化",
"52": "VOIPNOTIFY",
"53": "VOIPINVITE",
"62": "小视频",
"66": "微信红包",
"9999": "SYSNOTICE",
"10000": "红包、系统消息",
"10002": "撤回消息",
"1048625": "搜狗表情",
"16777265": "链接",
"436207665": "微信红包",
"536936497": "红包封面",
"754974769": "视频号视频",
"771751985": "视频号名片",
"822083633": "引用消息",
"922746929": "拍一拍",
"973078577": "视频号直播",
"974127153": "商品链接",
"975175729": "视频号直播",
"1040187441": "音乐链接",
"1090519089": "文件"
}
}
}
chatgpt
对接chatgpt api。我的信用卡无法绑定chatgpt。所以使用 Free ChatGPT API Key 提供的免费 API KEY 使用 gpt-3.5-turbo 模型。
github: https://github.com/chatanywhere/GPT_API_free
应用
这次主要是对接 chatgpt 做一个聊天机器人。
用作消息推送,监控报警,定时消息都是OK的。
注意
任何 hook 都有风险,使用 WeChatFerry 应该会有微信号被ban的风险。最好用小号,且和大号不是同一个实名(不实名也可以)。因为腾讯实行的是连坐制。同一个实名下的所有号一起封。
不要发送大量信息,敏感信息,容易触发微信风控机制。另外据说发送GPT消息的尤其容易被封。
大量重复内容会被封号?!
我给bot开启了一个debug,忘记关了,两个同样弱智的机器人不停地互怼,跑了1天多的时间,发了可能有几万条消息?(计数器只看到99+)。

难道说大量重复内容不会封号?还是说风控逻辑是对单个微信发很多消息不受限?
由此能简单推测,风控的不是消息的数量,而是消息的范围?
发送人数 | 每人发送数量 | 影响范围 | 影响烈度 |
---|
1人 | 10条 | 1 | 10 |
10人 | 1条 | 10 | 1 |
10人群 | 1条 | 10- | 1- |
如果这样假设成立,那么在很多群里,发送很多信息就是最危险的,再@的话,会更加危险。
什么时候会封号?
@lich0821 建议不封号的办法是不用微信,看来不封号只是过程,封号才是归宿。
持续观察。
更新
D3
大概挂机2.5天后,发现掉线了,上服务器看了一下,这样了:

重新登录,还能登录,没有封号,算是一次警告?【这是新环境登录的正常掉线】
持续观察。
D5
又过了两天,目前正常,只推送了少量消息,发送了一些CRON测试。

持续观察。
D7
又过了两天,推送消息都正常,机器人没有掉线。
难道第一次掉线是因为互怼了大量消息导致的?
持续观察。
D9
中间服务器重启,微信忘记开,停了半天,其他时间都正常在线,推送消息数量少。
也就差不多这样了。
D30~40
? 不记得多少天了,目前正常。