赞
踩
下列获取access_token的方法中
参数 | 必须 | 说明 |
---|---|---|
wechat_corpid | 是 | 企业id |
wechat_corpsecret | 是 | 应用id |
access_token可参考官网文档:点击跳转
def wechat_token(): """获取access_token""" # 此处我将wechat_corpid以及wechat_corpsecret存放在了数据库的表中 obj = Profile.objects.filter(name='wechat').first() url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format( obj.configuration.get('wechat_corpid'), obj.configuration.get('wechat_corpsecret')) try: req = requests.get(url=url, verify=False) token = req.json().get('access_token') if token: # token后续发送企业微信消息给成员是需要,agentid为企业应用的id return {'status': 'success', 'token': token, 'agentid': obj.configuration.get('wechat_agentid')} else: return {'status': 'error', 'msg': str(json.loads(req.text))} except Exception as e: return {'status': 'error', 'msg': str(e)}
企业微信机器人收到消息后会发送在群里
webhook是企业微信群机器人的webhook地址,需要配置才能使用
以下代码为发送markdown消息,其他类型消息请参考官方文档
企业微信群机器人推送消息官方文档
class WechatSend(object):
def send_webhook_message(self, webhook, content):
data = {
"msgtype": "markdown",
"markdown": {
"content": content # content内容支持多种类型
}
}
headers = {'content-type': 'application/json'}
response = requests.post(webhook, json.dumps(data), headers=headers)
info_logger.info("企业微信机器人消息推送 "+str(responses)) # 此处我获取到的响应被放入到了日志文件中
return responses
发送消息具体信息可查看:
消息推送官方文档
class WechatSend(object): def send_message(self, content, touser): # 获取Token,此处引用了本文上方的access_token ret = wechat_token() if ret.get('status') == 'success': agentid = ret.get('agentid') headers = {'Content-Type': 'application/json;charset=utf-8'} send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + ret.get('token') json_text = { 'touser': touser, # 此处发送消息有三种:指定接收消息的成员、指定接收消息的部门、指定接收消息的标签 'agentid': agentid, "msgtype": "markdown", # 消息类型有多种可参考官方文档 "markdown": { "content": content }, "safe": 0 } res = requests.post(send_url, json.dumps(json_text, ensure_ascii=False).encode('utf-8'),headers=headers).content ret = json.loads(str(res, 'utf-8')) if ret['errmsg'] == 'ok': # 成功后将消息存到日志 info_logger.info("微信成员消息推送成功 msg:" + str(ret["errmsg"])) return {'status': 'success'} else: # 失败后将消息存到日志 error_logger.error("微信成员消息推送失败 msg:" + str(ret["errmsg"])) return {'status': 'error', 'msg': ret['errmsg']} else: return {'status': 'error', 'msg': ret.get('msg')}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。