利用微信实现自动发送监控告警
最近笔者的项目需要找到一种方法能自动将Python爬虫产生的一些结果用告警的信息的方式发送到手机上,以往我们用来发送告警的方式往往是短信或者邮件,但是这两种方式要么不够灵活要么实时性不够。现在越来越多的互联网应用选择用微信作为平台发送告警信息,这种方式的前提就是你的应用需要能够访问到微信的服务器。
根据笔者的了解,目前集成微信告警主要有两种方式:
- 用个人号发送告警
- 用公众号(企业号)发送告警
公众号发送告警 使用公众号发送告警,从形式上看起来更加正式,并且不需要扫码登录,更适合部署在服务器上长期运行。因为近期微信的企业号和公众号做了合并,因此申请的流程有了一些变化,但是总体来说更加简单了,即使没有真正的公司注册信息也同样可以申请到,只是未验证主体信息的账号只能有200个成员,发送次数的限制为:帐号上限数*30人次/天
注册公众号(企业号) 现在申请的过程非常简单,申请入口:https://work.weixin.qq.com/
查看公众号 注册完成后可以进入到后台管理页面,点击微信插件,可以看到我们企业号的二维码,并可以进行添加成员等操作
文章图片
微信插件 创建应用 在开始调用公众号的API之前,我们要先创建一个应用,告警可以发送到指定的应用中,同时我们还可以对应用授权,以限制可以看到告警的人员范围
文章图片
创建应用
【利用微信实现自动发送监控告警】创建完成后,点击应用图标可以看到以下页面
文章图片
应用信息
其中AgentId和Secret两个字段在后面的代码中要用到 微信API 要实现简单的消息发送,我们只需要用到两个微信的API接口
- 获取token:https://work.weixin.qq.com/api/doc#10013
- 发送消息:https://work.weixin.qq.com/api/doc#10167
import jsonimport requestsclass WeChatPub:
s = requests.session()
token = Nonedef __init__(self):
self.token = self.get_token("", "")
print("token is " + self.token)def get_token(self, corpid, secret):
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}".format(corpid, secret)
rep = self.s.get(url)
if rep.status_code == 200:
return json.loads(rep.content)['access_token']
else:
print("request failed.")
return Nonedef send_msg(self, content):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
header = {
"Content-Type": "application/json"
}
form_data = https://www.it610.com/article/{"touser": "@all",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "textcard",
"agentid": 1000002,
"textcard": {
"title": "领奖通知",
"description": content,
"url": "URL",
"btntxt": "更多"
},
"safe": 0
}
rep = self.s.post(url, data=https://www.it610.com/article/json.dumps(form_data).encode('utf-8'), headers=header)
if rep.status_code == 200:
return json.loads(rep.content)
else:
print("request failed.")
return Noneif __name__ == '__main__':
wechat = WeChatPub()
wechat.send_msg("2016年9月26日 恭喜你抽中iPhone 7一台,领奖码:xxxx请于2016年10月10日前联系行政同事领取")
CorpID在我的企业->企业信息 页面的最下面
文章图片
mark
执行以后在目标群里会收到以下信息:
文章图片
mark 接下来的事情就简单了,我们在已经准备好的爬虫脚本中需要告警的位置加上 wechat.send_msg()即可将相关的信息发送到我们的企业号上,实现自动发送告警。
原文链接:《利用微信实现自动发送监控告警》
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- 员工的微信朋友圈是公司的宣传阵地吗()
- java中如何实现重建二叉树
- FBI怎么和恐怖分子谈判