腾讯的官方文档真的是不敢恭维,这当然不是我一个人的看法,在github上有很多调用微信接口的工具包。调用接口还需要工具包,足以说明调用微信接口真的很难。
最近小程序消息通知有所变动,咱也不赘述原因了。总之是之前的不能用,而且没有过渡期。
![1e4dda3b0e74b3692f9d0d9d7a691f11.png](https://img-blog.csdnimg.cn/img_convert/1e4dda3b0e74b3692f9d0d9d7a691f11.png)
作为调用方,只能跟着修改。看了订阅消息的文档觉得比较简洁,可后来发现真的是简洁而不简单,简洁本身是好事,但是也得把事说清楚啊。好像是实习生做完在等老师批改。
先看官方文档的截图:
![e15c6dc55ad7a38624c2c727e8444386.png](https://img-blog.csdnimg.cn/img_convert/e15c6dc55ad7a38624c2c727e8444386.png)
小程序开发
简单3步走。
- 先说第一步。可能有点苛刻,给了微信后台的地址,获取模版,在哪呢?对于新手来说真的是一头雾水。具体位置是:功能->订阅消息
![96fee947eacad88998e39265d25507ae.png](https://img-blog.csdnimg.cn/img_convert/96fee947eacad88998e39265d25507ae.png)
- 再说第二步,主要的坑也是在这。下面是官方文档的截图
![48a36976ba44ae9b088ce0144cfb6511.png](https://img-blog.csdnimg.cn/img_convert/48a36976ba44ae9b088ce0144cfb6511.png)
看到官方示例代码
wx.requestSubscribeMessage({ tmplIds: [''], success (res) { }})
毫不犹豫的就把这段代码写到了onLoad里,本想让用户进入小程序就弹出。
onLoad: function () { wx.requestSubscribeMessage({ tmplIds: [''], success (res) { console.log(res); }}) }
但是却没有,报这个错:
requestSubscribeMessage:fail can only be invoked by user TAP gesture.
最后官方在评论区给出的回答是,只支持用户点击或支付之后调用。就这么一句话,写在文档里不好吗?
![c3129d5e3f9d0aad5e6f2f2d5ae6f8e4.png](https://img-blog.csdnimg.cn/img_convert/c3129d5e3f9d0aad5e6f2f2d5ae6f8e4.png)
其中object.success 回调函数返回的TEMPLATE_ID
{ "errMsg":"requestSubscribeMessage:ok", "zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE":"accept"}
这个返回真的是很别扭。
好了,还是说正事吧。发送订阅消息需要注意的几个点
- 模版消息分为一次性订阅消息和长期订阅消息
一次性订阅消息:用户自主订阅后,开发者可不限时间地下发一条对应的服务消息,订阅一次只能发一条,再次发送需要重新订阅。每条消息可单独订阅或退订。
长期订阅消息:用户订阅一次后,开发者可长期下发多条消息。但是长期消息目前仅向部分行业开放,比如政务民生、医疗、交通、金融、教育等线下公共服务。
- 模板消息一次最多订阅3条,一次性模板 id 和永久模板 id 不可同时使用。
- 在弹出用户订阅界面中。当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,模板消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。
![786e15e7fddadda51155072593acecbe.png](https://img-blog.csdnimg.cn/img_convert/786e15e7fddadda51155072593acecbe.png)
好歹最后还是完成了小程序的消息通知。
最后小程序的通知是发到了微信的「服务通知」里,调试通知消息要在真机上。
![ab58175cf6d138d2bea6c90bba1370e2.png](https://img-blog.csdnimg.cn/img_convert/ab58175cf6d138d2bea6c90bba1370e2.png)
如果有其他问题在评论区交流,当然也可以一起吐槽小程序文档和本我。