Python 發送微信小程序的模板消息

    在小程序的開發過程當中,會存在模板消息的發送,具體文檔見 這裏,模板消息的發送是和語言無關的,這裏將簡要寫一下怎麼用 Python 給用戶發送模板消息。
     經過文檔能夠知道,發送的時候,須要使用小程序的 access_token 以及用戶提交的 form_id,這裏實現小程序的發送也就主要分爲三部分:html

    1. 獲取小程序的 access_token;
           2. 獲取用戶提交的 form_id;
     3. 給用戶發送模板消息。
redis

 

1. 獲取小程序的 access_token,因爲失效期爲 2 小時,爲了不每次發送的時候都要去請求接口獲取,這裏可使用一個定時任務,定時的時間只須要少於兩個小時就能夠,獲取到 access_token 後,存儲在 Redis 中,這樣在小程序中包括髮送模板消息在內,只須要直接讀取 Redis 的值就能夠了。示例代碼以下:json

 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. 發送模板消息api

 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)

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

相關文章
相關標籤/搜索