先看完整代码及效果展示,然后具体分析
import requests
import json
# 1,获取access_token
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}".format("企业ID corpid", "创建的应用的corpsecret")
ret = requests.get(url)
access_token = json.loads(ret.text)['access_token']
# 2,使用access_token发送应用消息
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}".format(access_token)
data = {
"touser": "@all",
"msgtype": "text",
"agentid": 1000002,
"text": {
"content": "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看<a href=\"http://work.weixin.qq.com\">邮件中心视频实况</a>,聪明避开排队。"
},
"safe": 0,
"enable_id_trans": 0,
"enable_duplicate_check": 0
}
ret = requests.post(url, json.dumps(data))
print(ret.text)
代码输出结果

查看发送的消息

一、获取access_token
参考官方文档: 获取access_token
1,获取corpid和corpsecret用来请求API获取access_token
参数官方文档:获取corpid和corpsecret 其中corpsecret需要先自己创建应用才能查看(我这里创建了一个名为“内部消息”的应用),如图:

点击应用“内部消息”即可查看到secret了
二、发送应用消息
1,agentid参数的获取
点击应用“内部消息”即可查看到AgentId了
剩下的直接请求接口发送消息就可以了
三、报错解决:
参考官方文档: 错误代码查询,搜索errcode即可查看报错详情
1,errcode: 60020
{"errcode":60020,"errmsg":"not allow to access from your ip, hint: [1678075075372880301554475], from ip: xx.xx.xx.xx, more info at https://open.work.weixin.qq.com/devtool/query?e=60020"}
解决方法:进入到创建的应用里有个企业可信IP,点击配置

在企业可信IP中填写入报错信息中的from ip的ip地址即可(下图IP只是示例)

如第一次配置,可能还需要先配置域名(这个域名是自己已经备案的域名),并将根据页面步骤下载的txt文件上传到服务器上,可直接通过域名访问。配置完域名后再配置企业可信IP。