Thanks to visit codestin.com
Credit goes to github.com

Skip to content

send_msg 插件用于chatgpt-on-wechat项目和chatgpt-on-wechat-win项目。 实现手动执行api/微信命令发送消息通知到微信功能

Notifications You must be signed in to change notification settings

Isaac20231231/send_msg

Repository files navigation

file_api服务

简介

file_api 插件用于chatgpt-on-wechat项目。
实现手动发送消息通知到微信功能,写入json消息数据到data.jaon文件里,

python版本

python3.11 目前发现有低版本不兼容的问题,建议使用大于3.10版本

安装

此插件作为微信聊天机器人系统的一部分,需要将其放置在正确的插件目录下:

安装方法(三种方式)

下载插件,访问插件仓库地址

第一种:手动下载压缩包,将send_msg 文件夹复制到您的聊天机器人的 plugins 目录中(注意需要修改文件夹名称,会自动带上main分支)。

第二种:微信执行命令

#installp https://github.com/Isaac20231231/send_msg.git
#scanp

第三种:进入plugins 目录克隆

git clone https://github.com/Isaac20231231/send_msg.git

注意事项

  1. 确保 __init__.py,file_api.pysend_msg.py 文件位于 send_msg 文件夹中。
  2. 安装插件相关依赖 pip install -r requirements.txt
cd plugins/send_msg
pip install -r requirements.txt

data.json文件介绍

file_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插件介绍

注意事项

发送个人消息时,一定要有好友关系,否则无法发送消息。
发送群聊消息时,如果出现找不到群聊的情况,要把微信群聊设置成通讯录群聊。

第一种使用

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个空格

更新日志

V2.3 (2024-09-05)

  • 1.增加channel判断,兼容win版本机器人的ntchat发送消息(https://github.com/Tishon1532/chatgpt-on-wechat-win),
  • 支持itchat和ntchat两种channel类型,注意ntchat目前还没解决群聊@所有人的场景,只能@单个人,另外ntchat的receiver_name只支持填写微信名字

V2.2 (2024-08-15)

  • 修改了插件名字和文件夹一致
  • api服务修改逻辑,不注册插件,采用函数调用的方式启动api服务
  • ps:注意因为此次修改了插件名称,之前/plugins/plugins.json目录下的file_writer和file_watcher两个插件名字需要删除

v2.1 (2024-07-19)

  • 优化兼容发送好友消息,先查找微信备注名,找不到再查找微信昵称,receiver_name支持填写微信备注名和微信昵称。
  • 优化了发送群聊消息的逻辑,之前一定要加好友才能@指定人,现在不需要加好友也可以@指定人。(先从群聊里找微信名,找不到通过好友列表找微信备注名,备注名没有再找微信昵称)

v2.0 (2024-07-18)

  • 新增支持发送图片、视频和文件的消息格式(文件内容传参http或者https的url)。

v1.5 (2024-05-29)

  • 新增支持微信命令发送消息功能。
  • 优化了文件监听的模式,使用了python看门狗模式监听文件变化
  • 更新了文档,添加了更多的使用示例。
  • 修复了一些已知的 bug。

v1.0 (2024-05-24)

  • 初始插件版本发布,支持基本api触发消息发送微信功能。
  • 提供了简单的配置选项和说明文档。

联系作者

可以加微信:shine86869,备注来意

贡献

如果您有任何改进意见或功能请求,请随时提交 Pull Request 或创建 Issue。

许可

请确保遵守相关的使用和分发许可。

感谢打赏

开源不易,如果您觉得这个项目对您有帮助,可以请作者喝杯咖啡,谢谢!

其他

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

About

send_msg 插件用于chatgpt-on-wechat项目和chatgpt-on-wechat-win项目。 实现手动执行api/微信命令发送消息通知到微信功能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages