zoukankan      html  css  js  c++  java
  • Python 发送微信小程序的模板消息

        在小程序的开发过程中,会存在模板消息的发送,具体文档见 这里,模板消息的发送是和语言无关的,这里将简要写一下怎么用 Python 给用户发送模板消息。
         通过文档可以知道,发送的时候,需要使用小程序的 access_token 以及用户提交的 form_id,这里实现小程序的发送也就主要分为三部分:

        1. 获取小程序的 access_token;
               2. 获取用户提交的 form_id;
         3. 给用户发送模板消息。

    1. 获取小程序的 access_token,由于失效期为 2 小时,为了避免每次发送的时候都要去请求接口获取,这里可以使用一个定时任务,定时的时间只需要少于两个小时就可以,获取到 access_token 后,存储在 Redis 中,这样在小程序中包括发送模板消息在内,只需要直接读取 Redis 的值就可以了。示例代码如下:

     1 def get_access_token():
     2 payload = {
     3 'grant_type': 'client_credential',
     4 'appid': 'appid',
     5 'secret': 'secret'
     6 }
     7 
     8 req = requests.get('https://api.weixin.qq.com/cgi-bin/token', params=payload, timeout=3, verify=False)
     9 access_token = req.json().get('access_token')
    10 redis.set('ACCESS_TOKEN', access_token)

    2. 获取用户提交的 form_id,这里只需要提供一个接口给小程序就可以了,代码示例如下:

    1 class FormHandler(RequestHandler):
    2 
    3     def post(self):
    4         req_data = self.request.body
    5         req_data = json.loads(req_data)
    6         form_id = req_data.get('form_id')
    7         template_push(form_id)  # 使用消息进行模板推送

    3. 发送模板消息

     1 def template_push(form_id):
     2     data = {
     3         "touser": 'openid',
     4         "template_id": 'template_id',
     5         "page": 'pages/index/index',
     6         "form_id": form_id,
     7         "data": {
     8             'keyword1': {
     9                 'value': 'value1'
    10             }
    11         },
    12         "emphasis_keyword": ''
    13     }
    14     access_token = redis.get('ACCESS_TOKEN')
    15     push_url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={}'.format(access_token)
    16     requests.post(push_url, json=data, timeout=3, verify=False)

    至此,用户就会收到消息了。

  • 相关阅读:
    paip.51cto HTML转码规则
    常用记账软件总结
    paip.为什么软件体积越来越大
    paip.版本控制CVSSVNTFS总结
    paip.提升用户体验导入导出
    paip.手机ROOT过程总结
    PAIP.http post 400错误
    paip.javaaspphp.net互相调用方法大总结
    PAip.英文引擎在项目开发上的作用
    paip.SVN无法提交提示冲突的解决
  • 原文地址:https://www.cnblogs.com/qiaojushuang/p/9195583.html
Copyright © 2011-2022 走看看