另辟蹊径,在小程序中获取是否关注公众号

近期处理了一个需求,具体是需要在小程序首页展示一个“去关注”公众号的按钮(如下图),并跳转到公众号去关注;这里其实比较好处理,直接用<web-view/>内嵌到公众号就可以了。

但是产品又提出:当用户已经关注了公众号后,就不要展示这个组件了。

这就让人犯了难。翻阅了大量资料,基本上都是两种办法:

第一种是加用户跳转获取code,然后再用code获取access_token,再获取公众号的open_id,最后才能拿到带有是否关注标识的用户信息;

第二种是用公众号的api获取关注open_id列表,然后遍历获取union_id,并于当前用户union_id做比对。

这也太麻烦了些,需要绑定开放平台,以及开发者认证等等。有没有简单点的办法呢?

🈶️!

我突然想到这里有用到小程序-公众号统一服务消息,详见:微信小程序的统一服务消息 uniformMessage.send_享受挑战的博客-CSDN博客

这里是通过小程序的open_id直接发送公众号模版消息,前提是用户已关注该公众号。那么我们就可以利用这个捷径来实现我们想要的功能。

具体的思路是:向用户发送一个不存在的模版(这样用户肯定不会收到任何通知),通过返回的错误码来判断是否有关注:

这个是模版id错误的异常:{"errcode":40037,"errmsg":"invalid template_id rid: *******"}
这个是用户未关注的异常:{"errcode":43004,"errmsg":"require subscribe rid: ******"}

看到这里就很明晰了,统一服务消息接口会先校验是否有关注,再校验模版的正确性。所以我们只需判断errcode是否为43004,若是则未关注,否则已关注。

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值