Skip to content

【FAQ】WeChatFerry 机器人常见问题 v39.0.7

发表时间:Sun Dec 03 2023 18:00:32 GMT+0800 (中国标准时间)

TEQuant https://mmbiz.qpic.cn/mmbiz_jpg/XaSOeHibHicMHYA6dN0R8jgMIrF4IWZh7dAI6Oyia3s6jrWBryrZ9pko0dga9eiamfED5PfkTtSuzPC8WMnjyPb3Og/0?wx_fmt=jpeg

  • Q0 怎么报 BUG?

  • Q1 支持什么版本的微信?

  • Q2 怎么开始玩?

  • Q3 支持什么客户端?

  • Q4 支持什么功能?

  • Q5 有没有示例?

  • Q6 崩溃怎么办?

  • Q7 为什么 @ 不成功?

  • Q8 提示 Timed out?

  • Q9 怎么查看日志?

  • Q10 Address in use?

  • Q11 获取不到联系人?

  • Q12 如何退出机器人?

  • Q13 文件发送不成功?

  • Q14 图片发送不成功?

  • Q15 图片解密不成功?

  • Q16 LoadLibrary 调用失败?

  • Q17 安装失败?

  • Q18 又安装失败?

  • Q19 wcfhttp 回调

  • Q20 UnicodeEncodeError

  • Q21 这货什么原理?

后台回复 WCF 找到组织。

Q0 怎么报 BUG?

这个问题放在最前面。因为常常收到:不能用怎么办?没反应怎么办?没效果怎么办?

我总是一头雾水。这里推荐一下 提问的艺术

我把群公告粘贴过来:

【🐛报错提供】
💠尽量多提供信息,群主是傻子,信息不够看不懂
💠启用调试以便排查:wcf = Wcf(debug=True)
💠版本:pip list,查看 wcferry 右边的数字
💠版本:pip list,查看 wcfhttp 右边的数字
💠错误现象
💠引发错误的操作
💠错误日志:logs/wcf.txt

Q1 支持什么版本的微信?

v39.0.7.x 支持微信 3.9.2.23。后续留意更新日志。

注意安装适当的微信版本。

注意安装适当的微信版本。

注意安装适当的微信版本。

这里有 安装包[1]。

Q2 怎么开始玩?

  1. 请参考视频教程【教程】微信机器人 WeChatRobot 安装

  2. 参考 文档[2]。

  3. 参考示例工程 WeChatRobot[3]。

Q3 支持什么客户端?

目前支持的客户端包括:

  • Go(danbai225 维护)

  • HTTP(查克维护)

  • Java(查克创建但目前没有积极维护)

  • Python(查克维护)

  • Rust(supermoonie 维护)

Q4 支持什么功能?

目前支持的功能包括:

  • 检查登录状态

  • 获取登录账号信息

  • 获取消息类型

  • 获取所有联系人

  • 获取所有好友

  • 获取数据库

  • 获取某数据库下的表

  • 获取用户信息

  • 发送文本消息(可 @)

  • 发送图片

  • 发送文件

  • 允许接收消息

  • 停止接收消息

  • 执行 SQL 查询

  • 接受好友申请

  • 添加群成员

  • 删除群成员

  • 解密图片

  • 获取朋友圈消息

  • 保存图片

  • 保存语音

Q5 有没有示例?

有,可以参考 WeChatRobot[4],示例了:

  • 天气查询

  • 成语查询

  • 成语接龙

  • 定时新闻发送

  • ChatGPT 聊天

  • TigerBot 聊天

  • 自动通过好友申请

Q6 崩溃怎么办?

参考 Q0 报 BUG。

Q7 为什么 @ 不成功?

三个可能:

  1. @是复制过来的。这个没办法,微信识别不到,请找微信提 BUG。

  2. 使用方法不正确。

  3. 修改过 wxid。这是群友测试发现的,微信的消息会 @旧的 wxid,而获取到的 wxid 是新的,匹配不上,所以判断不出被 @。目前无解,需要自行改代码。

正确的使用方法(其实看文档就知道了):

def sendTextMsg(self, msg: str, receiver: str, at_list: str = "") -> None:       """ 发送消息       :param msg: 消息字符串       :param receiver: 接收人wxid或者群id       :param at_list: 要@的wxid, @所有人的wxid为:nofity@all       """       # msg 中需要有 @ 名单中一样数量的 @       ats = ""       if at_list:           wxids = at_list.split(",")           for wxid in wxids:               # 非群聊,就不要填 at_list 了,否则下面会出错的               ats += f" @{self.wcf.get_alias_in_chatroom(wxid, receiver)}"       # {msg}{ats} 表示要发送的消息内容后面紧跟@,例如 北京天气情况为:xxx @张三       if ats == "":           self.LOG.info(f"To {receiver}: {msg}")           self.wcf.send_text(f"{msg}", receiver, at_list)       else:           self.LOG.info(f"To {receiver}: {ats}\r{msg}")         self.wcf.send_text(f"{ats}\n\n{msg}", receiver, at_list)

Q8 提示 Timed out?

查看日志确定原因

Q9 怎么查看日志?

在运行目录下,找到 logs/wcf.txt,打开,即可查看。

Q10 Address in use?

如果第一次运行就提示 Address in use,那应该是跟某个应用产生了端口冲突(wcferry 默认使用 1008610087
解决办法有两个:

  1. 任务管理器把使用 1008610087 的进程杀掉(目前已知 金山毒霸 和一个校园网的客户端使用 10086)。

  2. 修改 wcferry 的启动端口:

wcf = Wcf(port=10010)  # 换一个不冲突的端口吧

如果第一次运行成功,后续提示被占用,那么大概率是前面粗暴关闭了窗口。参考 Q12。

Q11 获取不到联系人?

使用 WeChatRobot,可能会出现回复的时候 @ 后面是空白的情况。这是由于没有获取到联系人导致的,一般出现在刚登录的新环境中。

目前的解决办法是:把微信登录、退出多来几遍,让联系人落库。

后续会做个优化。

Q12 如何退出机器人?

温柔点儿,Ctrl+C 退出,不要强制关闭窗口。

Q13 文件发送不成功?

文件注意路径,建议使用绝对路径,同时使用 \\ 替换 \

Q14 图片发送不成功?

参考 Q13,同时要确保图片是正常的图片(比如,人工手动能不能发?)

Q15 图片解密不成功?

查看日志看失败原因。

需要注意的是,确保图片文件 ( .dat ) 存在。因为图片落盘需要时间,收到图片消息的时候,稍作等待。另外,需要在 文件管理 处,设置文件自动下载。

Q16 LoadLibrary 调用失败?

![](image\【FAQ】WeChatFerry 机器人常见问题 v39.0.7\0.png)

LoadLibrary 调用失败

请看 Q1。

Q17 安装失败?

![](image\【FAQ】WeChatFerry 机器人常见问题 v39.0.7\1.png)

WARNING Retrying

网络质量不行,换个 pip 源。比如清华源:

# 如果使用 wcferry pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade wcferry # 如果使用 wcfhttp pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade wcfhttp

Q18 又安装失败?

Failed to Build pynng

![](image\【FAQ】WeChatFerry 机器人常见问题 v39.0.7\2.png)

安装 pynng 失败

Python 太新,需要自己编译依赖。不想自己编译,那就换 Python 3.9Python 3.10Python 3.11

Q19 wcfhttp 回调

《回调到底是什么?》

Q20 UnicodeEncodeError

![](image\【FAQ】WeChatFerry 机器人常见问题 v39.0.7\3.png)

UnicodeEncodeError

将终端的编码格式设置为 utf-8 即可。

Q21 这货什么原理?

前面有过介绍:WeChatFerry: 一个玩微信的工具

参考资料

[1]

安装包: _https://github.com/lich0821/WeChatFerry/releases/latest_

[2]

文档: _https://wechatferry.readthedocs.io/zh/latest/_

[3]

WeChatRobot: _https://github.com/lich0821/WeChatRobot_

[4]

WeChatRobot: _https://github.com/lich0821/WeChatRobot_

阅读原文

上次更新于: