前言:一直使用的是威联通的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 &结语:祝你成功。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
网友评论