我这里记录一下我在配置订阅消息推送的时候发生的一些小问题吧,算是经验,给没有做过的同学避个坑。
官方文档地址:小程序订阅消息 | 微信开放文档 (qq.com)
1:官方文档的问题:
此处标注的是在微信公众平台手动配置获取模板id。我这里想当然的认为是关联公众号的的模板id即可。
我这一顿测试,总是报错:
arduino
复制代码
requestSubscribeMessage:fail No template data return, verify the template id exist
后来参透了文档中的玄机,哦,原来是小程序的模板的模板id呀。
开通消息订阅模板如下图所示:
里边有公共模板库,选择你想要的,或者你也可以申请属于自己的模板。
2:开通小程序消息推送权限
你以为开通了小程序订阅消息模板就可以了么?
不不不,你天真了,我们还是需要再去开发者中心里边再配置一下消息推送的信息。
这里需要按照你自己的服务器域名进行配置。
3:48001报错
上述步骤完成之后,你认为你就可以进行消息推送了么?
不不不,你又天真了。
复制代码
按照官方文档的推送消息的数据格式,组装好数据之后,我们向
ini
复制代码
https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
复制代码
发送请求,结果返回:
json
复制代码
{"errcode":48001,"errmsg":"api unauthorized rid: 6329613c-1b943dce-424ef456"}
嗯……官方文档给出的解释是:api 功能未授权,请确认公众号/小程序已获得该接口,可以在公众平台官网 - 开发者中心页中查看接口权限
我这个是小程序,那我需要去公众平台官网 - 开发者中心页中查看接口权限。
好那我们移步公众平台官网,但是我有个疑问哈,公众平台官网的网址是啥呢?
我上哪看?
百度了一下,主要找到的还是排查一下小程序的appid与代码中的appid是否一致。
我看了,好像没什么问题。
但是后来一想,嗯……可能是有点问题。
问题可能出在了ACCESS_TOKEN上。
简单的说下我这个项目的背景,我这里是微信公众号和微信小程序同时开发,在一台服务器上。
获取ACCESS_TOKEN我是将他封装成了一个公共方法,随时调用即可。
问题就出在这里。我调用获取ACCESS_TOKEN的时候获取的是公众号的ACCESS_TOKEN,而不是小程序的ACCESS_TOKEN。
但是我们请求小程序发送模板消息的接口的时候需要的是小程序的ACCESS_TOKEN。
4:允许拒绝推送消息的问题
推送消息的时候,我在手机端选择了一个允许,一个拒绝,如下图所示:
但是我在后端做测试的时候,两个订阅消息,我都是可以推送,并且接受成功的。
那现在就有一个小问题,选择的意义在哪呢?
不知道是我的问题还是微信的问题,各位看官有遇到过类似的问题么?
这里主要是记录一下我在做小程序推送遇到的一些小问题吧。主要还是自己有点粗心。早晚得被自己坑死~
有好的建议,请在下方输入你的评论。