file_api 插件用于chatgpt-on-wechat项目。
实现手动发送消息通知到微信功能,写入json消息数据到data.jaon文件里,
python3.11 目前发现有低版本不兼容的问题,建议使用大于3.10版本
此插件作为微信聊天机器人系统的一部分,需要将其放置在正确的插件目录下:
下载插件,访问插件仓库地址
#installp https://github.com/Isaac20231231/send_msg.git
#scanpgit clone https://github.com/Isaac20231231/send_msg.git- 确保
__init__.py,file_api.py和send_msg.py文件位于send_msg文件夹中。 - 安装插件相关依赖
pip install -r requirements.txt。
cd plugins/send_msg
pip install -r requirements.txtfile_api 服务数据依赖于 data.json 文件进行写入。
{
"data_list":[
{
"receiver_name": ["微信备注名1"],
"message": "发送消息",
"group_name": []
},
{
"receiver_name": ["微信备注名1","微信备注名2"],
"message": "发送消息",
"group_name": []
},
{
"receiver_name": [],
"message": "发送消息",
"group_name": ["群名1","群名2"]
}
],
{
"receiver_name": ["微信备注名1"],
"message": "发送消息",
"group_name": ["群名1","群名2"]
}
]
}- `receiver_name`: 接收者的微信备注名,可以是多个
- `message`: 消息内容
- `group_name`: 群聊名称,可以是多个
发送个人消息时,group_name为空,填写receiver_name,message即可。多个时列表逗号分隔即可
发送群聊消息时,group_name,message必填,receiver_name可选
填写微信备注名时(支持多个),发送@某人消息,填写所有人发送@所有人消息,不填写不@。
安装并正确配置插件后,您可以通过以下方式使用:
打开postman,请求api接口"http://127.0.0.1:5688/send_message"
注意:
127.0.0.1是本机ip,如果是部署服务器要改成服务器ip地址,5688是端口号,如果修改了端口号要改成对应的端口号(端口号可以在run_flask_app()
修改端口启动)
发送消息到微信
{
"receiver_name": ["微信备注名1"],
"message": "这是一条测试消息",
"group_name": []
}成功返回:
{
"message": "发送成功",
"status": "success"
}异常返回参考send_msg.py文件里的validate_data函数

发送个人消息时,一定要有好友关系,否则无法发送消息。
发送群聊消息时,如果出现找不到群聊的情况,要把微信群聊设置成通讯录群聊。
send_msg.py插件采用watchdog监听文件变化,和file_api服务相互使用,
file_api负责写入文件,send_msg负责监听文件,有内容时触发发送消息到微信。
send_msg支持以下命令:
$start watchdog开启监听$stop watchdog停止监听$check watchdog查看监听状态
插件默认不启动监听,需要手动启动监听,监听文件为data.json文件,当data.json文件有内容时,触发发送消息到微信。
启动方式看上方,成功效果如下

send_msg.py插件可以使用微信命令来发送消息到微信,不需要file_api服务,
发送消息分两种方式,一种是发送个人消息,一种是发送群聊消息。
send_msg支持以下命令(支持一次性发多人,单人时列表只填一个即可):
$send_msg [微信备注名1,微信备注名2] 消息内容发送个人消息$send_msg [微信备注名1,微信备注名2] 消息内容 group[群聊名称1,群聊名称2]发送群聊消息,并且@某人$send_msg [所有人] 消息内容 group[群聊名称1,群聊名称2]发送群聊消息,并且@所有人$send_msg [] 消息内容 group[群聊名称1,群聊名称2]发送群聊消息,不@任何人 注意:$send_msg后面是2个空格

- 1.增加channel判断,兼容win版本机器人的ntchat发送消息(https://github.com/Tishon1532/chatgpt-on-wechat-win),
- 支持itchat和ntchat两种channel类型,注意ntchat目前还没解决群聊@所有人的场景,只能@单个人,另外ntchat的receiver_name只支持填写微信名字
- 修改了插件名字和文件夹一致
- api服务修改逻辑,不注册插件,采用函数调用的方式启动api服务
- ps:注意因为此次修改了插件名称,之前/plugins/plugins.json目录下的file_writer和file_watcher两个插件名字需要删除
- 优化兼容发送好友消息,先查找微信备注名,找不到再查找微信昵称,receiver_name支持填写微信备注名和微信昵称。
- 优化了发送群聊消息的逻辑,之前一定要加好友才能@指定人,现在不需要加好友也可以@指定人。(先从群聊里找微信名,找不到通过好友列表找微信备注名,备注名没有再找微信昵称)
- 新增支持发送图片、视频和文件的消息格式(文件内容传参http或者https的url)。
- 新增支持微信命令发送消息功能。
- 优化了文件监听的模式,使用了python看门狗模式监听文件变化
- 更新了文档,添加了更多的使用示例。
- 修复了一些已知的 bug。
- 初始插件版本发布,支持基本api触发消息发送微信功能。
- 提供了简单的配置选项和说明文档。
可以加微信:shine86869,备注来意
如果您有任何改进意见或功能请求,请随时提交 Pull Request 或创建 Issue。
请确保遵守相关的使用和分发许可。
开源不易,如果您觉得这个项目对您有帮助,可以请作者喝杯咖啡,谢谢!

插件已支持企业微信wework和paid协议gewechat,这两部分源码因有人付费单独开发,所以不开源,有需要的可以联系作者购买。
