订阅消息接收不到,代码有问题吗老师

来源:6-6 云调用实现模板消息推送

BeiYing1

2020-02-18

图片描述

图片描述

图片描述

图片描述

写回答

3回答

谢成

2020-02-20

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"

]

}

}

然后要上传云函数。

在需要发送订阅消息的地方,调用这个云函数就可以了。

测试订阅消息需要在真机上测试,开发工具不能测试:

点击真机调试,用手机扫描二维码。

发送完消息以后,在微信页面,就能看到消息了

0
4
关中农家人
老师,订阅消息在开发工具里只能用真机调试触发,选择预览好像也不能触发,什么原因呢?
2022-11-25
共4条回复

kassycutie

2020-02-18

你好,请问解决了吗

0
1
BeiYing1
还没有
2020-02-19
共1条回复

谢成

2020-02-18

重新测试下,看是不是用户拒绝了权限

//img.mukewang.com/szimg/5e4bed380944fb3606380072.jpg

0
1
BeiYing1
应该是我的代码有欠缺,订阅消息需要用户手动确认
2020-02-19
共1条回复

微信小程序云开发-从0打造云音乐全栈小程序

横跨小程序端、云后端、CMS一站式云开发的小程序全栈课程

1938 学习 · 2768 问题

查看课程