介绍给微信公众号用户主动推送消息指的是发送模板消息。可以随时向用户发送提醒。功能非常丰富,比如提醒用户特定事件(到付款时间、商品降价、任务执行成功、遇到错误等)。它不仅可以给用户发送短信,还可以让用户点击后跳转到指定的网页或小程序。限制但是该功能也受到许多限制。顾名思义,模板消息只能发送基于模板的消息。模板可以从模板库中选择,也可以自己创建,但必须经过审核后才能使用。而且只有微信公众号可以使用模板消息,并且必须通过微信认证(目前的条件是必须有营业执照才能注册公众号,个人注册是订阅号,不能通过微信认证)准备步骤通过微信认证另外要发送消息,必须先绑定用户openid。具体操作可以参考我之前的文章:django微信公众号开发-获取授权绑定用户微信Openid官方文档官方文档比较复杂,没有示例代码。微信模板消息官方文档:https://developers.weixin.qq....添加模板,需要记下模板id获取accesstoken接口详情https请求方式:GEThttps://api.weixin.qq.com/cgi...参数说明参数是否必须注明grant_type为获取access_token填写client_credentialappid为第三方用户唯一凭证secret为第三方用户唯一凭证密钥,即appsecret返回instructions正常情况下,微信会返回如下JSON数据包给公众号:{"access_token":"ACCESS_TOKEN","expires_in":7200}codeexp_time=0access_token=''defget_access_token():globalexp_time,access_tokeniftime.time()>exp_time:r=requests.get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET')d=json.loads(r.text)access_token=d['access_token']exp_time=time.time()+d['expires_in']-10#减去一点防止fr时间临近时,om将失效。returnaccess_tokenpython获取微信公众号accesstoken调用接口,发送模板消息接口详情http请求方法:POSThttps://api.weixin.qq.com/cgi...POST数据说明POST数据示例如下:{"touser":"OPENID","template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY","url":"http://weixin.qq.com/download","miniprogram":{"appid":"xiaochengxuappid12345","pagepath":"index?foo=bar"},"data":{"first":{"value":"恭喜您购买成功!","color":"#173177"},"keyword1":{"value":"巧克力","color":"#173177"},"keyword2":{"value":"39.8元","color":"#173177"},"keyword3":{"value":"2014年9月22日","color":"#173177"},"remark":{"value":"欢迎再次购买!","color":"#173177"}}}参数说明该参数是否必填说明touser为收件人openidtemplate_id为模板IDurl无模板跳转链接(海外账号不具备跳转能力)小程序无跳转到小程序需要的数据,不需要跳转小程序也不需要传号根据appid是跳转到的小程序的appid(小程序的appid必须绑定发送模板消息的公众号,暂时不支持小游戏)需要pagepath才能跳转到小程序具体页面Path,支持参数,(例如index?foo=bar),需要小程序已经发布,暂不支持小游戏。data为模板数据颜色无模板内容字体颜色,不填默认为黑色注意:url和miniprogram都是非必填字段,如果都不传,模板不会跳转;如果都通过,则优先跳转到小程序。开发者可以根据实际需要选择其中一种重定向方式。当用户的微信客户端版本不支持跳转小程序时,会跳转到url。返回码表示调用模板消息接口后,返回一个JSON数据包。正常返回JSON数据包示例:{"errcode":0,"errmsg":"ok","msgid":200228332}codedefsend_msg(idx):users=UserProfile.objects.filter(school=request.user.userprofile.school,user_type='staff',vacation_manage=True)data={"touser":"OPENID","template_id":"xxxxxxxxx","url":"https://xxxx.com/view/%d/"%idx,"data":{"first":{"value":"","color":"#173177"},"keyword1":{"value":'',"color":"#173177"},"keyword2":{"value":数据,"color":"#173177"},"keyword3":{"value":'',"color":"#173177"},"备注”:{“值”:描述,“数据”:描述,“颜色”:“#173177”}}}foruinusers:ifu.openid:data['touser']=u.openidurl='https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='+get_access_token()r=requests.post(url,json.dumps(data))欢迎来到我的博客:https://codeplot.top/技术分类文章微信公众号开发分类文章~~~~
