订阅消息接收不到,代码有问题吗老师
来源:6-6 云调用实现模板消息推送
BeiYing1
2020-02-18
3回答
-
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"
]
}
}
然后要上传云函数。
在需要发送订阅消息的地方,调用这个云函数就可以了。
测试订阅消息需要在真机上测试,开发工具不能测试:
点击真机调试,用手机扫描二维码。
发送完消息以后,在微信页面,就能看到消息了
042022-11-25 -
kassycutie
2020-02-18
你好,请问解决了吗
012020-02-19 -
谢成
2020-02-18
重新测试下,看是不是用户拒绝了权限
012020-02-19
相似问题