今天突发奇想:我有一些自动化任务,这些自动化任务的执行结果,是成功和失败都是通过邮件发送的。但是邮件这个工具,有点正式,毕竟我只想一个通知。那有没有方法可以用微信接受通知呢?
有!
微信我记得有个Server酱,不过好像收费(免费的限制比较多)
于是乎,退而其次,用企业微信。其实,个人也可以注册一个企业微信,不需要营业执照认证之类的。不过有一些更高级的功能就得用真实的企业资料进行认证了,但那些功能目前用不到。
如何注册企业微信?
pass
后补,也可以网上趴教程。
创建企业微信应用
创建完成后,会显示刚才新建的应用
点进去查看信息,并记录几个关键的id
AgentId(每个应用都有唯一的agentid)
和
Secret(secret是企业应用里面用于保障数据安全的“钥匙”,每一个应用都有一个独立的访问密钥,为了保证数据的安全,secret务必不能泄漏)
这俩东西有用,记到小本本上。
使用Python发送消息
可以支持的消息类型是这些:
先以最简单的文字做讲解
Python通过企业微信发送文本消息
代码如下:
1、新建config.py文件,主要用于一些比较固定的参数的存放。比如:我要发给谁、他的部门是什么、使用哪个应用去发送等等。
access_token='XXXXXXXXXXXXXXXXXXXXXXX'
touser="XXXXXXXXXXXXXXX"# 多个用户用|隔开
toparty="1"# 多个部门用|隔开
totag="1"# 多个标签用|隔开
agentid_ceshi1=1000002# 应用id,可以在应用的设置页面查看,一个应用对应一个agentid
type_image = "image"# 媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
其中:
access_token是一个比较特殊的id,得通过接口调用之后获得。ta有时效性,失效之后还得重新获取。参见:https://developer.work.weixin.qq.com/document/path/91039
2、新建access_token.py文件
import requests
import config
url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={config.cropid}&corpsecret={config.secretid}'
r = requests.get(url)
print(r.json())
运行完成后,把这个对应的数记下来。记到小本本上。下面有用
3、新建send_text.py文件
import requests
import json
import faker
from work_wechat import config # 我在work_wechat这个文件夹下面新建的文件
fk = faker.Faker()
url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={config.access_token}&random=69152"
# python的json可以编码解码
# json.loads():json格式的字符串------------>字典
# json.dumps():字典转---------------------->json格式的字符串
payload = json.dumps({
"touser": config.touser,
"toparty": config.toparty,
"totag": config.totag,
"msgtype": "text",
"agentid": config.agentid_ceshi1,
"text": {
"content": "已备份成功2,请查收!"
},
"safe": 0,
"enable_id_trans": 0,
"enable_duplicate_check": 0
})
headers = {
'User-Agent': fk.user_agent(),
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
说明:
touser:是发送给谁
toparty:哪个部门
totag:标签(企业微信对员工进行管理的时候,定义的标签)
agentid:就是上边让记到小本本上的AgentId,
各个参数的含义,见:https://developer.work.weixin.qq.com/document/path/90665
4、运行send_text.py文件,
然后打开手机上的企业微信(我是发个我寄几的,所以在我自己手机上就收到了)
接受正常。成功
以上。
本文是第一篇,主要讲一下企业微信能帮助我们实现消息推送以及如何使用
还有第二篇,主要说一下其他类型文件怎么发。比如如何发送图片、文本卡片、视频等等
还有第三篇,主要讲怎么跟自己的程序做关联,如:自己的程序跑完了之后,如何把结果通过企业微信通知。
To Be Continue…