收集整理的方法如下:
微信用户访问微信公众号(订阅号)的网页时判断用户有没有关注公众号(订阅号)
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
知乎:
如何实时判断用户是否关注订阅号?
作者:juson
链接:https://www.zhihu.com/question/27080937/answer/102588734
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。