前言:
一直使用的是威联通的nas,并且几年前在站里找到个教程是使用docker镜像lepark/wxpush,这个镜像可以推送到企业微信的应用上,现在搜索这个关键词还能搜到教程。不知道咋搞的9月底发现报错了,推送失败。网上相关信息也没咋找到,就不研究了,另辟蹊径,刚好最近用到企业微信的群机器人的webhook,在网上找了下没相关教程,就问GPT,尝试了下成功了,就记录下来。
也许脚本及一些命令可以优化,不过我不会,会的大佬优化一下可以出个新文章。
环境:
威联通nas,
python3,
企业微信的webhook地址,
另外一台能跑python3的主机(威联通也可以,不过要先装py3环境,然后再搞开机自启很麻烦,我有另外一台linux,就不折腾威联通了)
步骤一:
申请企业微信群机器人的webhook网上教程很多就不写了。
步骤二:
python脚本导入linux主机,脚本如下,并假如脚本文件名字为push.py,脚本中需要修改的仅有webhook的key和代码最后的端口,ip一般不需要改。此脚本AI写的,我只是小范围修改了。
from flask import Flask, request import requests import json app = Flask(__name__) # 企业微信的 Webhook URL,此处XXXX需要替换成自己的 WEBHOOK_URL = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXXXXXXXXX' # 接收 NAS 的通知 @app.route('/receive', methods=['GET']) def receive_notification(): # 获取 URL 查询参数中的通知内容 username = request.args.get('UserName') password = request.args.get('Password') phone_number = request.args.get('PhoneNumber') message_content = request.args.get('Text') # 打印日志以供调试(可选) print(f"收到通知 - 用户名: {username}, 密码: {password}, 电话: {phone_number}, 内容: {message_content}") # 输出到企业微信的消息格式 wechat_message = { "msgtype": "text", "text": { "content": f"NAS 消息通知:n内容: {message_content}" } } # 通过企业微信的 Webhook 转发消息 response = requests.post(WEBHOOK_URL, headers={'Content-Type': 'application/json'}, data=json.dumps(wechat_message)) if response.status_code == 200: return "Notification sent to WeChat successfully", 200 else: return "Failed to send notification to WeChat", 500 if __name__ == '__main__': # 启动 Flask 服务,监听某个端口,此处需要修改XXX为不在用的端口号,0.0.0.0代表监听设备的所有ip,可以指定本机的某一个ip app.run(host='0.0.0.0', port=XXXXXXXXXX)
步骤三:
给放了push.py的设备创建虚拟环境及安装脚本所需的依赖,懂得都懂,假如跟py脚本放在一个文件夹中,假如是root下,我的命令为
python3 -m venv push-venv
输入后需要等待一会,root下就会生成一个push-venv的文件夹。然后输入下面的命令进入虚拟环境
source push-venv/bin/activate
会发现控制台前会多了个(push-venv) 就是进去了。
然后安装依赖,等着就行,一个安装好了再安装另一个,需要看这步的一般第一次接触py,稳一点。
pip install flask pip install request
安装好了以后退出虚拟环境,命令如下
deactivate
此时未加入开机自启,允许py脚本的命令如下,可以看到控制台有输出了,什么http://ip:端口,此时脚本就前台运行了,ctrl+c是关闭脚本,暂时不要关,我们去步骤四。
/root/push-venv/bin/python3 /root/push.py
步骤四:
找到威联通,通知中心的如下的位置,点击进去
提供商选择custom
别名无所谓,URL模板如下,需要填入linux主机的ip及py脚本中你留的端口。暂时不要保存,右边有个小飞机一样的是测试。点击进去我们做个测试。页面中的电话号码输入1即可,没要求,发送看下企业微信的机器人是不是就收到了。
http://ip:端口/receive?UserName=@@UserName@@&Password=@@Password@@&PhoneNumber=@@PhoneNumber@@&Text=@@Text@@
收到就成功了,没成功的就留言吧,成功后直接点击确定,下面的SMS服务器登录名称和SMS服务器登录密码不用填。
步骤五:
就是给威联通创建通知规则了,如果不会就全选择上。
步骤六:
给linux主机创建py脚本开机自启,命令如下,写入/etc/rc.local的exit 0 之前就行,写入后重启设备看下效果。
/root/push-venv/bin/python3 /root/push.py &
结语:祝你成功。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,