未验证主体信息的账号只能有200个成员,发送次数的限制为:帐号上限数*30人次/天
注册完成后可以进入到后台管理页面,点击应用管理
在开始调用公众号的API之前,我们要先创建一个应用,告警可以发送到指定的应用中,同时我们还可以对应用授权,以限制可以看到告警的人员范围
创建完成后,点击应用图标可以看到以下页面
其中AgentId和Secret两个字段在后面的代码中要用到
要实现简单的消息发送,我们只需要用到两个微信的API接口
# -*- coding:utf-8 -*-
import json
import requests
class WeChatPub():
def __init__(self,corpid='wwb1b',secret='tnbqWD0'):
self.req = requests.session()
self.token = self.get_token(corpid, secret)
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)
response = self.req.get(url)
if response.status_code == 200:
access_token=json.loads(response.content)['access_token']
return access_token
else:
print("request failed.")
return None
def 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 = {
"touser": "@all",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "textcard",
"agentid": 1000002,
"textcard": {
"title": "领奖通知",
"description": content,
"url": "URL",
"btntxt": "更多"
},
"safe": 0
}
data=json.dumps(form_data).encode('utf-8')
rep = self.req.post(url, data=data, headers=header)
if rep.status_code == 200:
return json.loads(rep.content)
else:
print("request failed.")
return None
if __name__ == '__main__':
wechat = WeChatPub()
msg='''<div class=\"gray\">2020年7月26日</div>
<div class=\"normal\">恭喜你抽中iPhone 7一台,领奖码:xxxx</div>
<div class=\"highlight\">请于2020年10月10日前联系行政同事领取</div>'''
wechat.send_msg(msg)
每个企业都拥有唯一的corpid,获取此信息可在管理后台“我的企业”-“企业信息”下查看“企业ID”(需要有管理员权限)
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。
开发者需要缓存access_token,用于后续接口的调用(注意:不能频繁调用gettoken接口,否则会受到频率拦截)。当access_token失效或过期时,需要重新获取。
执行以后在目标群里会收到以下信息: