微信二次开发,微信获取用户网页授权是如何判断用户是否为已关注公众号用户 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imyip
V2EX    微信

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

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

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

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

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

    但是如果是一个新公众号(或者现有粉丝不多,可以忽略),那么订阅号服务号都可以用这个方法。
    qiayue
        2
    qiayue  
    PRO
       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  
    PRO
       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  
    PRO
       2015-11-07 00:40:10 +08:00
    5l 正解
    qiayue
        14
    qiayue  
    PRO
       2015-11-07 06:13:57 +08:00 via Android
    @sytnishizuiai 但其实你说的这个获取用户信息的 API 只有在用户已经跟公众号有消息交互之后才能调用成功。
    所以一个账号仅仅是微信网页上授权给你之后,是无法调用这个接口的。
    qiayue
        15
    qiayue  
    PRO
       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  
    PRO
       2015-11-07 10:52:18 +08:00 via Android
    @sytnishizuiai 但是有一个大前提是, 95%以上的已认证订阅号是没有“网页授权获取用户信息”这个 API 的权限的,只有已认证的服务号才有这个权限。
    我手里有一个已认证的订阅号有这个权限,但那是各种机缘巧合下得到的,并且授权域名已经被写死了,在公众号后来无法修改(现在上面已经提示无权限,但其实我还是可以用那个授权域名来做授权),我不敢保证其他人有没有这种机缘巧合,所以保险一点说 95%,其实按照微信的逻辑,应该是订阅号 100%没有网页授权权限的。
    qiayue
        20
    qiayue  
    PRO
       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  
    PRO
       2015-11-07 11:02:47 +08:00 via Android
    @sytnishizuiai
    公众号是订阅号和服务号的统称

    我最近半年做了几十款基于微信的小游戏小活动了,我可以保证我已经把所有的 API 都通读了,并且已经测试过所有 API 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     939 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 22:24 PVG 06:24 LAX 14:24 JFK 17:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86