V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imyip
V2EX  ›  微信

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

  •  
  •   imyip · 2015-11-06 20:49:27 +08:00 via Android · 26485 次点击
    这是一个创建于 3310 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    我最近半年做了几十款基于微信的小游戏小活动了,我可以保证我已经把所有的 API 都通读了,并且已经测试过所有 API 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 19:50 · PVG 03:50 · LAX 11:50 · JFK 14:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.