微信二次开发,微信获取用户网页授权是如何判断用户是否为已关注公众号用户

2015-11-06 20:49:27 +08:00
 imyip

微信二次开发,网页授权环节如何判断用户是否关注公众号
现在微信获取网页授权,无论是否未关注用户都能获取授权。所以
1.如何判断用户是否为关注用户
2.如果成功判断用户非关注用户,通过链接引导用户关注是否违反微信相关规则

26371 次点击
所在节点    微信
23 条回复
qiayue
2015-11-06 21:00:16 +08:00
我能想到的办法是通过事先自己保存一份粉丝数据表,然后后面每关注一个都同步到这个表里。
然后用户授权之后,就可以查询知道是否关注。

但是获取粉丝列表 API 只有服务号有这个权限,所以如果是半路接手这个公众号的话,订阅号就无法使用这个方法。

但是如果是一个新公众号(或者现有粉丝不多,可以忽略),那么订阅号服务号都可以用这个方法。
qiayue
2015-11-06 21:01:14 +08:00
诱导关注这个看运气,如果有人举报了,微信又审核通过认定你诱导了,那么就会受到惩罚。
kslr
2015-11-06 21:30:32 +08:00
@qiayue 都有这个权限,接入开放平台,同步用户,记录新加入者。
qiayue
2015-11-06 21:36:01 +08:00
@kslr 嗯,那也是一个办法
对于已经有订阅号的,可以新注册一个服务号(主要用于授权),然后都接入开放平台
sytnishizuiai
2015-11-06 22:05:32 +08:00
微信有 2 种获取信息,一种是不许要授权的,只能获得 open_id ,
另外一种是需要用户授权的,就可以获取用户的昵称、城市、头像等,里面有个字段 subscribe 会告诉你用户是否关注了。
http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html
用户管理-》获取用户基本信息
imyip
2015-11-06 22:33:51 +08:00
@qiayue
@kslr
@sytnishizuiai 说的正确,有两种方式获取用户信息,其中一种是有个 subscribe 字段判断是否关注的。
现在就是诱导关注一下就好了!!
感谢大家的帮忙
honeycomb
2015-11-06 22:36:30 +08:00
@imyip 又是个诱导关注的坑
sytnishizuiai
2015-11-06 23:03:31 +08:00
@imyip 诱导关注的话你要当心,腾讯遇到诱导关注的举报或者自己发现,会封公众号的,建议不要诱导太严重被举报,诱导的话最好用文字图片,这样安全点
airyland
2015-11-06 23:26:05 +08:00
@qiayue 订阅号也可以获取粉丝列表的
imyip
2015-11-07 00:15:57 +08:00
@honeycomb
@sytnishizuiai
没办法,客户要求吸粉,上司要求这样做,我都提出会封号的可能,看造化吧。
kslr
2015-11-07 00:21:21 +08:00
@imyip 这里有区别,我俩说的是订阅号没有权限的,他说得是服务好有权限的。
imyip
2015-11-07 00:38:16 +08:00
@kslr 是的,我做的是服务号
Tink
2015-11-07 00:40:10 +08:00
5l 正解
qiayue
2015-11-07 06:13:57 +08:00
@sytnishizuiai 但其实你说的这个获取用户信息的 API 只有在用户已经跟公众号有消息交互之后才能调用成功。
所以一个账号仅仅是微信网页上授权给你之后,是无法调用这个接口的。
qiayue
2015-11-07 06:15:36 +08:00
http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
网页授权获取用户信息接口里并没有返回是否关注信息
alex321
2015-11-07 07:14:41 +08:00
用户关注你的时候,微信服务器会向你的开发者服务器推送关注事件消息的,用户取消关注的时候也会给你推送事件消息。
有了这两点,配合网页授权获得的用户的 openId ,自然就能知道这个 openId 是否还在关注着。
likai
2015-11-07 08:50:18 +08:00
开发平台账号绑定微信公众号账号。
然后就能在取用户信息的时候取到 subscribe 这个。这个字段就是是否关注公众号的
sytnishizuiai
2015-11-07 10:43:09 +08:00
@qiayue
用户关注的时候就可以获取用户的信息,直接存数据库。
网页授权可以获取 unionid 和 openid ,如果数据库有用户信息,就可以看存的关注字段,如果没有信息,肯定是没有关注过。
因为是判断是否关注过,那只要每次用户关注公众号 就会自动把信息存库,就不存在其他方式登录不能判断了。
qiayue
2015-11-07 10:52:18 +08:00
@sytnishizuiai 但是有一个大前提是, 95%以上的已认证订阅号是没有“网页授权获取用户信息”这个 API 的权限的,只有已认证的服务号才有这个权限。
我手里有一个已认证的订阅号有这个权限,但那是各种机缘巧合下得到的,并且授权域名已经被写死了,在公众号后来无法修改(现在上面已经提示无权限,但其实我还是可以用那个授权域名来做授权),我不敢保证其他人有没有这种机缘巧合,所以保险一点说 95%,其实按照微信的逻辑,应该是订阅号 100%没有网页授权权限的。
qiayue
2015-11-07 10:54:51 +08:00
所以如果楼主问的是怎么判断服务号的授权用户是否关注,当然有各种办法。
但如果问的是订阅号,就需要一些曲折的办法,比如上面提到的另外注册一个服务号用于授权,并且都加入微信开放平台,然后用 unionid 来做判断。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/234266

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX