1. 简介
微信小程序作为社交软件中的一种,其提供了方便快捷的通信方式,同时也提供了模板消息发送API,方便开发者在小程序中使用。本文重点介绍微信小程序中如何发送模板消息。
2. 发送模板消息流程
2.1 获取access_token
在向微信服务器发送模板消息之前,需要先获取access_token。access_token是微信服务器用于验证开发者请求合法性的标识,每日有请求次数和请求频次限制,有效期为2个小时,因此需要在每次发送模板消息之前重新获取。
const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`
const response = await axios.get(url)
const access_token = response.data.access_token
2.2 获取模板ID
在发送模板消息前,需要首先选择一个模板,并且获取模板ID,然后根据模板ID拼接消息内容。
2.3 组装模板消息内容
组装模板消息内容最重要的一步,需要根据选择的模板ID和消息内容进行参数替换。
参数格式为:
```json
{
"touser": "OPENID",
"template_id": "TEMPLATE_ID",
"page": "index",
"form_id": "FORMID",
"data": {
"keyword1": {
"value": "339208499"
},
"keyword2": {
"value": "2015年01月05日 12:30"
},
"keyword3": {
"value": "腾讯微信总部"
},
"keyword4": {
"value": "广州市海珠区新港中路397号"
}
},
"emphasis_keyword": "keyword1.DATA"
}
```
其中,`touser` 表示接收者(用户)的openid,`template_id` 表示模板ID,`form_id` 表示formID,`data` 表示模板需要的数据,最多支持10个参数,`emphasis_keyword` 表示需要进行高亮的参数。
需要注意的是,在小程序中,`form_id` 必须在提交后7天内使用,且同一form_id只能使用一次。
2.4 发送模板消息
在获取access_token和组装模板消息内容后,最后一步是向微信服务器发送模板消息。
const url = `https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=${access_token}`
const response = await axios.post(url, data)
3. 完整代码
下面是完整的发送模板消息代码,其中,`openid` 为用户的openid,`template_id` 为选择的模板ID,`form_id` 为formID,`data` 为需要进行参数替换的模板消息内容。
async function sendTemplateMessage(openid, template_id, form_id, data) {
const appid = 'your_appid'
const appsecret = 'your_appsecret'
const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`
const response = await axios.get(url)
const access_token = response.data.access_token
const message = {
touser: openid,
template_id: template_id,
page: 'index',
form_id: form_id,
data: data,
emphasis_keyword: 'keyword1.DATA'
}
const url = `https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=${access_token}`
const response = await axios.post(url, message)
}
4. 总结
发送模板消息是小程序中的一项常见功能,通过本文的介绍,我们了解了发送模板消息的整个流程和注意事项。在开发小程序时,如果需要使用发送模板消息的功能,可以参考本文提供的代码进行开发。