如何判断用户有没有关注订阅号

收集整理的方法如下:

微信用户访问微信公众号(订阅号)的网页时判断用户有没有关注公众号(订阅号)

1、前提:

微信公众号分为服务号和订阅号,它们的接口权限各不相同;服务号可以通过网页授权接口,用户授权后获取用户的openid,通过用户的openid获取用户的信息,用户的信息里包含用户对公众号的关注字段。但是,订阅号没有相应的网页授权接口权限,无法从通过相应的接口来获取openid(注意:可通过微信用户和公众号之间的交互事件获取openid)。

2、解决方法(借助微信开放平台):

将订阅号和服务号(具有网页授权接口权限)绑定到同一微信开放平台下(同一用户通过不同openid获取统一的unionid)
获取订阅号所有已关注用户的openid,通过openid获取他们unionid,保存到数据库
通过服务号授权后获取用户的服务号的openid,再获取unionid,查询数据库判断unionid是否已经存在,存在则已关注订阅号,反之没关注
此外,需要监听微信用户对订阅号的关注、取消关注事件,相应的增加和删除数据库中的openid和unionid
---------------------
作者:过气的小子
来源:CSDN
原文:https://blog.csdn.net/qq_29869663/article/details/82800214
版权声明:本文为博主原创文章,转载请附上博文链接!


 

已知Unionid,如何获取用户对于另一订阅号的openid?如何判断是否关注订阅号?

1.通过服务号A的微信网页授权,以scope为snsapi_userinfo的模式,获得了用户基于服务号A的openid(A),unionid,以及其他包含用户信息的数据。
https://mp.weixin.qq.com/wiki...

2.现在希望在网页上,判断用户是否已经关注订阅号B

3.通过订阅号B的获取用户基本信息(UnionID机制),返回的json包中有一个参数subscribe,是用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
https://mp.weixin.qq.com/wiki...

4.请求订阅号B的获取用户基本信息(UnionID机制)的json包,需要两个参数。

参数是否必须说明
access_token (基础access_token,并非网页授权access_token)
openid 普通用户的标识,对当前公众号唯一

5.订阅号没有权限通过网页授权的方式获得openid(https://mp.weixin.qq.com/wiki...
。但是文档 在获取用户基本信息(UnionID机制)中提到

在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID

但是在网页上,是未知用户是否已关注的,那么要如何获得用户基于订阅号B的 openid ?如何去判断用户是否已经关注订阅号B?

https://segmentfault.com/q/1010000012008711


 

知乎:

如何实时判断用户是否关注订阅号?

在微信订阅号看到一个活动,点开链接的时候,提示需要先关注该订阅号,才能参与!所以比较好奇,这个订阅号是怎么知道我是否关注了它?查阅了微信公众平台接口之后,发现需要时服务号才能实现这个功能,所以想请教各位大神!
订阅号是没有网页授权的接口调用功能的,所以要用订阅号获取openid的方式貌似只有一个,就是在用户与你的订阅号进行交互时(比如关注、取消关注、发消息、点击菜单等),通过接收微信消息事件推送来获取推送信息里带有的openid,这时候你可以用订阅号openid获取用户信息,但是打开网站链接后是无法直接获取订阅号openid,只能用服务号通过OAuth授权获取服务号的openid,有了服务号openid就可以获取用户信息了,然后通过用户信息中的unionid(需提前将公众号绑定到同一个微信开放平台)将服务号openid和订阅号openid关联到一起,也就是说你可以使用服务号openid通过unionid机制关联到订阅号openid,有了订阅号openid就可以获取用户对订阅号的关注状态等等了


作者:juson
链接:https://www.zhihu.com/question/27080937/answer/102588734
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2019-04-28 22:04  谦信君  阅读(3738)  评论(0编辑  收藏  举报