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)

至此,用戶就會收到消息了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM