由于微信网页端口关闭了,现在基本上不能直接利用python调用微信来发送消息通知了,虽然有server酱,使用也很广泛,但随着server酱改版。。。
然后就没然后了。。。。。
免费的只支持5条消息。。。。诶,慢慢都是要盈利的了
基本上是强制会员了。。。。
不想冲会员,最简单的方法是使用telegram,配置简单,而且使用很方便,但由于国内,所以必须得时刻fq才能收到消息,而且平时使用最多的也是微信,因此通过微信来推送信息还是很有必要的
看了一下server酱最新版本,它也是调用企业微信接口来实现发送信息的,虽然还可以配置其他如钉钉等接口,不过我们主要还是想在微信里接收通知
由于企业微信本身就比较方便调用接口,所以继续使用server酱来调用就显得多此一举了(主要是现在必须要会员,否则只能发送5条信息。。。)
所以这里介绍一下python直接使用企业微信接口发送消息
首先得要注册有企业微信,个人也可以注册的,企业随便创建一个就可以
然后登入企业微信管理后台
创建一个应用,然后获取应用ID( agentid
),应用Secret( secret
),具体创建方法可以参考server酱中的描述:https://sct.ftqq.com/forward,就不多介绍了
获取企业ID,在我的企业中可以看到
开始编写python程序
import requests
from fake_useragent import UserAgent
def send_wechat(title,text,detal_url):
get_acs_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=你的企业ID&corpsecret=应用的Secret'
access = requests.get(url=get_acs_token_url)
access_token = eval(access.text)['access_token']
url = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token}'
print(url)
headers = {
'User-Agent': UserAgent().random
}
key = {
"touser": "@all",
# "toparty": "PartyID1|PartyID2",
# "totag": "TagID1 | TagID2",
"msgtype": "textcard",
"agentid": 应用ID,
"textcard": {
"title": title,
"description": text,
"url": detal_url,
"btntxt": "更多"
},
"safe": 0,
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
res = requests.post(url=url,headers=headers,json=key)
# print(res.status_code)
# print(res.text)
修改的地方主要是这三个地方,修改为自己的就行:
主要包含两部分,前面是获取接口调用中需要用到的access_token,后面是调用接口然后发送信息
具体可以参考:获取access_token
调用接口 :发送消息
我这边发送的是文本卡片信息,其他如文本、图片、视频等信息可以自己参考修改
注意:在使用post发送信息的时候可能会出现报错
无法正常发送信息,查看返回码说错误的msgtype,这主要是由于 post发送过去的头部是“application/json”,是json格式的,所以在python 的request中,不能使用data,data的数据只能是字典,列表或者元组。
而json= 发送的是json的数据,所以这里需要使用json
即代码中使用的json=key,不能使用data=key
此时就可以正常使用企业微信发送消息,然后在微信中也可以收到提醒了
而且没有次数限制。。。。