评论

「笔记」订阅消息体验踩坑

本文主要是补充一下官方未提供的使用方法,和使用中与模板消息用法的不同。

前言

10月12日夜晚社区发了公告小程序模板消息能力调整通知,正式发布了 一次性订阅消息 这一能力,所以第一时间进行了体验。

本文主要是补充一下官方未提供的使用方法,和使用中与模板消息用法的不同。

文档地址

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

使用方法

wx.requestSubscribeMessage({
  tmplIds: ["模板id1","模板id2"],
  success: function (res) {
    //成功
  },
  fail(err) {
    //失败
    console.error(err);
  }
})

第一个坑

如果不勾选红色方框内的内容,用户每次触发订阅消息功能都会弹出授权窗口,如果用户勾选了则不会出现弹窗。

第二个坑

目前开发者工具(v1.02.191012)不支持调试,只能通过真机调试。

第三个坑

微信不会为开发者保存订阅次数,需要自己在后台记录用户触发的次数。

超过次数调用接口下发订阅消息会返回失败。

第四个坑

发送模板格式和原来的模板消息格式不一致,特别是data内的内容,订阅消息的字段key是和数据类型有关,value的参数需要严格按照设置的类型提交,具体使用参考后台的模板详情。

模板消息的格式:

"data": {
  "keyword1": {
    "value": "内容",
    "color": "#000"
  },
  "keyword2": {
    "value": "内容",
    "color": "#000"
  }
}

订阅消息的格式:

"data": {
  "thing1": {
    "value": "内容"
  },
  "number2": {
    "value": 20
}

第五个坑

订阅消息申请模板的时候,需要选择所属类目,而且只能是自己小程序相关类目,模板消息是不需要选择对应类目的。

如果删除小程序类目,则会把订阅消息模板一起删除,需谨慎操作。

第六个坑

长期订阅消息只针对特定行业开放,所以普通开发者并无法使用。

结束

暂时就先总结这些,有其它坑再补充。

最后一次编辑于  2019-10-13  
点赞 29
收藏
评论

60 个评论

  • 丁锐博
    丁锐博
    2019-11-05


    大佬呀,“超过次数” 这个次数是多少呀,从哪里得知?

    2019-11-05
    赞同
    回复 8
    • 拾忆
      拾忆
      2019-11-05
      订阅的时候自己记录到数据库里。
      2019-11-05
      回复
    • 丁锐博
      丁锐博
      2019-11-05回复拾忆
      用户点击的是 总是保持以上选择,不在询问 + 允许 这种情况 订阅次数怎么算?是多少?
      2019-11-05
      回复
    • 拾忆
      拾忆
      2019-11-05
      点一次+1,不知道以后会不会改,反正之前是这样。
      2019-11-05
      回复
    • 丁锐博
      丁锐博
      2019-11-05回复拾忆
      好哒,谢谢呢
      2019-11-05
      回复
    • 2019-11-05回复拾忆
      点一次+1,不再询问+允许 也必须点一次才能+1吗?还是没有前端交互也可以继续推送?
      2019-11-05
      回复
    查看更多(3)
  • 张隐蔽
    张隐蔽
    2019-11-05

    想问一下,我在申请订阅模版的时候,如果参数类型是需要输入汉字,但是汉字需要5个以内,满足不了需求 怎么办?

    2019-11-05
    赞同
    回复 1
    • 拾忆
      拾忆
      2019-11-05
      这个你得问官方,我不清楚哟。
      2019-11-05
      回复
  • 好名字
    好名字
    2019-10-30

    刚入坑,有几点问题求解答一下

    1.requestSubscribeMessage接口获取订阅消息授权时,模板ID一次最多只能放三个吗?

    2.因为要做考勤推送提醒等通知信息,如果用户长时间不操作小程序,那通知是不是没有办法发送?

    2019-10-30
    赞同
    回复 9
    • 拾忆
      拾忆
      2019-10-30
      1.应该是多个
      2.只要订阅1次就能发送一次,没有订阅就不可以发送,没有失效时间。
      2019-10-30
      回复
    • 💋
      💋
      2019-10-31回复拾忆
      感谢楼主的文章,刚看完你发的经测试后发现点很多次的确可以发送很多条信息,但是好像点过很多次后关闭消息提醒后,再打开可发送消息次数又成了0,提示了"errcode":43101,有没有比如根据openid或者unionid主动获取用户是否订阅了那个消息,不用等用户去前台操作后开发者才能知道的方法
      2019-10-31
      回复
    • 拾忆
      拾忆
      2019-10-31回复💋
      没有,目前官方没有提供查询的API,只能自己记录,自己判断。
      2019-10-31
      回复
    • 💋
      💋
      2019-10-31回复拾忆
      好吧,谢谢
      2019-10-31
      回复
    • 2019-11-05回复拾忆
      那是不是可以理解,如果用户没有去前端操作,我直接给上次推送成功的用户继续推送也是可以的,只是有失败几率,比如用户并不是长期订阅?还是说第二次推送如果用户不是长期订阅导致的失败有特殊错误码?
      2019-11-05
      回复
    查看更多(4)
  • Rick
    Rick
    2019-10-23


    请问这个是必须用户主动点击才能触发,还是可以进入某个页面自动触发弹出订阅消息弹窗??

    2019-10-23
    赞同
    回复 2
    • 痛快科技
      痛快科技
      2019-10-28
      2019-10-28
      回复
    • 拾忆
      拾忆
      2019-10-29

      必须用户点击触发

      2019-10-29
      回复
  • 秋雨
    秋雨
    2019-10-22

    请问怎么判断用户是否勾选了“总保持以上选择,不再询问”?

    2019-10-22
    赞同
    回复 2
    • 千淘万漉
      千淘万漉
      2019-11-09
      同问。感觉这个功能 现在真不健全
      2019-11-09
      回复
    • 侯衍超
      侯衍超
      2019-11-13回复千淘万漉
      就算是用户勾选了,也只能发一个消息。只不过下次请求的时候,不在弹窗而已
      2019-11-13
      回复
  • Yeyee
    Yeyee
    2019-10-21

    那评论提醒功能还是做不了啊

    2019-10-21
    赞同
    回复 2
    • 拾忆
      拾忆
      2019-10-22
      评论提醒这场景就别想了~
      2019-10-22
      回复
    • 月福爸爸
      月福爸爸
      2019-11-09回复拾忆
      不能做提醒吗 官方的实例里面 有什么积分变动提醒 。我都进入里面了 直接看就行了 还点提醒 到费事了
      2019-11-09
      回复
  • 赖嘉伟
    赖嘉伟
    2019-10-21

    补充一个:

    勾选「不再询问」之后,就算删掉小程序再打开,用户点击也不会出现弹窗。

    目前发现的办法只能是新增模板,换一个模板 ID

    2019-10-21
    赞同
    回复 1
    • Jsamuel
      Jsamuel
      2019-11-26
      对啊!这个感觉很不合理啊,只有一次弹框,然后怎么处理都没有弹框提醒了。
      2019-11-26
      回复
  • 林畅
    林畅
    2019-10-21

    有几个问题想咨询下:

    1、用户勾选了“总保持以上选择,不再询问”,会有字段记录勾选这个选项吗?

    2、如果用户勾选了“总保持以上选择,不再询问”,后续用户想关了这个订阅消息怎么办

    2019-10-21
    赞同
    回复 3
    • 拾忆
      拾忆
      2019-10-21
      1.没有
      2.只能让用户自己从设置里修改
      2019-10-21
      回复
    • Tracy
      Tracy
      2019-10-29回复拾忆
      如果没有记录总是保持以上选择的字段,怎么判断能不能继续发消息?
      2019-10-29
      回复
    • 拾忆
      拾忆
      2019-10-29回复Tracy

      只能根据发送失败回调判断,自己维护状态信息

      2019-10-29
      回复
  • _三千
    _三千
    2019-10-18

    比如我现在一个订单下完,调用了一次

    wx.requestSubscribeMessag

    ,另外一个订单下完,又调用了一次

    wx.requestSubscribeMessag

    那我怎么区分两次订单呢?他会下发的是哪一条消息呢?(一次性订阅)

    2019-10-18
    赞同
    回复 1
    • 拾忆
      拾忆
      2019-10-18
      订阅消息只有次数,其它没有。
      2019-10-18
      回复
  • 🍀蒲公英🍀
    🍀蒲公英🍀
    2019-10-17

    如何获取订阅状态啊?现在必须要点击订阅按钮才能获取订阅状态。如果用户在设置中取消勾选消息,那么后台发送消息会失败。重新勾选消息,需要再次点击订阅按钮才能再次发送消息,这个逻辑很怪呀。

    2019-10-17
    赞同
    回复 8
    • 拾忆
      拾忆
      2019-10-17
      我理解的话没有订阅状态,点一次自己存一次~不存或者存错就自己处理异常。
      2019-10-17
      回复
    • 🍀蒲公英🍀
      🍀蒲公英🍀
      2019-10-17回复拾忆
      我只要在设置中取消勾选消息,就发送失败了,如果能拿到状态的话,或许可以告诉后端这个用户的消息不用发啦,减少失败的情况~
      2019-10-17
      回复
    • 拾忆
      拾忆
      2019-10-17回复🍀蒲公英🍀
      那没办法,用户从设置里取消并没有给开发者通知,但是你收到失败回调,应该是不占用之前的订阅次数,重新引导用户打开再发送。(好像是这样的,你试下看看。)
      2019-10-17
      回复
    • 🍀蒲公英🍀
      🍀蒲公英🍀
      2019-10-17回复拾忆
      楼主如果勾选“总是保持以上选择,不再询问”下次想再看到弹窗是不可能了么,怎么可以把这个设置清掉呀?
      2019-10-17
      回复
    • 拾忆
      拾忆
      2019-10-17
      我那天测试的时候取消不掉~不知道通过开发者工具清空授权可以不可以,这个你试下吧。
      2019-10-17
      回复
    查看更多(3)

正在加载...

登录 后发表内容