老师可否把订阅消息这部分给补上…
来源:6-6 云调用实现模板消息推送

慕粉2333208813
2020-02-19
我报错 40037 说是模版id错误
但是直接复制的怎么会错…
检查过也是正确的Z
1回答
-
谢成
2020-02-19
1、请确认调试基础库的版本:
2、请认真检查当前小程序的id和登录的公众平台是不是同一个,有可能是多个账号弄混了
3、请检查当前配置的模板id是不是订阅消息的,别错选了模板消息
4、然后就按照文档来就行,文档写的特别好: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
5、如果文档还是看不懂,再参照我的代码:
配置完模板以后,调起客户端小程序订阅消息界面:
const templateId = 'xxxxxx'
wx.requestSubscribeMessage({
tmplIds: [templateId],
success(res) {
if (res[templateId] == 'accept') {
//用户同意了订阅,允许订阅消息
wx.showToast({
title: '订阅成功'
})
} else {
//用户拒绝了订阅,禁用订阅消息
wx.showToast({
title: '订阅失败'
})
}
},
fail(err) {
console.error(err)
}
})
需要发送消息的时候,就调用云函数,参数名称参考模板:
云函数这样写(代码我就不格式化了,自己粘贴到开发工具就行):
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const wxContext = cloud.getWXContext()
const templateId = 'xxxxx'
return await cloud.openapi.subscribeMessage.send({
touser: wxContext.OPENID,
page: 'page/index/index',
lang: 'zh_CN',
data: {
phrase1: {
value: '上课啦'
},
thing2: {
value: '小程序开发'
},
thing3: {
value: '订阅消息'
}
},
templateId: templateId,
miniprogramState: 'developer'
})
console.log(result)
return result
} catch (err) {
console.log(err)
return err
}
}
还需要在当前云函数下面,新建config.json文件:
{
"permissions": {
"openapi": [
"subscribeMessage.send"
]
}
}
然后要上传云函数。
在需要发送订阅消息的地方,调用这个云函数就可以了。
测试订阅消息需要在真机上测试,开发工具不能测试:
点击真机调试,用手机扫描二维码。
发送完消息以后,在微信页面,就能看到消息了:
希望这样可以帮助到你。
我的初衷是课程一直强调大家分析问题的思路和运用文档,想着是大家掌握了一些自学能力以后,以后的新知识可以融会贯通,因为方法都已经讲过了。小程序后续一定会不断的有新功能出现,掌握了学习方法,以后才能够真正的在工作当中独自运用。
课程有时间我会录的,最近实在课太多,嗓子已经快说不出话了,给你带来的不便给你道歉。
希望可以理解,真心感谢!!
10
相似问题