如何限制一个页面,必须关注某微信公众号,才可以访问? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abelyao
V2EX    问与答

如何限制一个页面,必须关注某微信公众号,才可以访问?

  •  
  •   abelyao 2014-09-19 08:14:18 +08:00 via Android 65964 次点击
    这是一个创建于 4044 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是这样的,有个查询功能比较有价值,想借此要求用户必须关注我们的公众号之后才可以继续使用,但现在怕以下情况:

    1,在聊天窗口直接复制后在其它地方打开;
    2,在微信浏览器中分享到朋友圈;
    3,在电脑上打开之后直接写软件批量查询了…

    请 V 友们支招,谢谢!
    第 1 条附言    2014-09-19 09:18:11 +08:00
    许多 V 友提到使用 oauth 2.0 的网页授权 + OpenID 绑定,但是网页授权是高级接口,需要通过微信认证(300元)才可以使用,那有没有其它方法,可以不做认证的?
    第 2 条附言    2014-09-19 10:07:27 +08:00
    再补充:要求全过程在一部手机上即可完成操作的,不要有第二个设备(比如电脑上的页面)
    27 条回复    2019-03-14 13:37:10 +08:00
    thewei
        1
    thewei  
       2014-09-19 08:34:08 +08:00 via iPhone
    认证后的服务号可以,微信网页授权接口
    thewei
        2
    thewei  
       2014-09-19 08:35:05 +08:00 via iPhone
    不对,好像网页授权不一定要关注公众号
    arron
        3
    arron  
       2014-09-19 08:41:45 +08:00
    网页授权后再查一下userInfo就可以看是否关注了。
    kidult
        4
    kidult  
       2014-09-19 08:44:04 +08:00
    很简单,在微信帐号里写个验证码,用户查询时需要关注微信号获取验证码
    cloverstd
        5
    cloverstd  
       2014-09-19 08:46:51 +08:00 via iPhone   2
    如果只在微信里使用的话,就让用户点击菜单或者发送关键字就返回这个页面,带一个token,并且设置lifetime
    cloverstd
        6
    cloverstd  
       2014-09-19 08:47:57 +08:00 via iPhone
    补充上一条,当进入页面后,token就失效
    abelyao
        7
    abelyao  
    OP
       2014-09-19 08:49:34 +08:00 via Android
    @arron @thewei
    授权好像并不一定要求关注吧?
    abelyao
        8
    abelyao  
    OP
       2014-09-19 08:50:40 +08:00 via Android
    @cloverstd 是的,想了一天也觉得就这个方法比较靠谱,对用户来说操作的要求也不高
    abelyao
        9
    abelyao  
    OP
       2014-09-19 08:51:35 +08:00 via Android
    @kidult 这个有点虐待用户体验了,不过我们提供查询的内容确实很有价值,也可以考虑
    liangh
        10
    liangh  
       2014-09-19 09:10:12 +08:00
    这个问题很简单了
    约束条件为:只在微信浏览器中访问
    步骤:
    1.在MP后台新建一条图文消息.内容为告诉用户如何关注(其实就是点上面的蓝色名字就可以).然后告诉关注后如何查询.
    2.采用oauth2.0(必须认证),授权作用域为 snsapi_base.只获取打开页面用户 openid就可以了
    3.在你的授权页,通过收到的openid.然后再通过 获取用户基本信息接口 就可以判断用户是否关注.如果已关注接口返回消息中字段subscribe==1 .相反为0
    4.通过上面判断是否已经关注.如果已经关注点到你相应的页面就好.如果没有关注.就跳转点上面MP中的图文消息连接.为了不让用户麻烦.可以在图文中添加你的授权链接.

    写了这么多.很简单了.授权,然后判断用户有没有关注.再跳到相应页面而已
    liangh
        11
    liangh  
       2014-09-19 09:12:11 +08:00
    再补充一下:
    微信浏览器中相关分享的js api. link就写你的授权url就可以了
    abelyao
        12
    abelyao  
    OP
       2014-09-19 09:15:45 +08:00
    @liangh 非常感谢你的热心回答,这个思路也很好。另外我想问一下,oauth 2.0 授权必须要有高级接口才可以使用吧?没有做那300元的认证可以调用吗?
    ccbikai
        13
    ccbikai  
    PRO
       2014-09-19 09:38:16 +08:00
    把查询功能做成发消息给公众号进行查询呢
    abelyao
        14
    abelyao  
    OP
       2014-09-19 09:44:20 +08:00
    @ccbikai 哈哈,是,这个是一招,也有想过,但是有两个缺点,一个是在消息中植入广告的效果没有页面上的效果好,另一个是不能鼓励分享到朋友圈增加传播量
    multiple1902
        15
    multiple1902  
       2014-09-19 09:45:08 +08:00
    我觉得吧,别做这个比较好。
    ccbikai
        16
    ccbikai  
    PRO
       2014-09-19 09:47:33 +08:00
    @abelyao 把查询结果生成一个网页,然后返回图文消息不就好了。
    分享的时候把分享的链接用上面的方法做做手脚
    arron
        17
    arron  
       2014-09-19 09:48:09 +08:00
    abelyao
        18
    abelyao  
    OP
       2014-09-19 09:54:55 +08:00
    @ccbikai 这也是一个方法,可以考虑,谢谢 :)
    niaoren
        19
    niaoren  
       2014-09-19 09:59:08 +08:00
    提供一个思路:

    先生成一个带参数的临时二维码,在你需要限制的网页上显示,让用户微信扫描二维码,用户扫描后,用微信公众号call接口在微信里面对话框返回一个验证码,让用户在网页输入验证码访问页面内容

    http://mp.weixin.qq.com/wiki/index.php?title=%E7%94%9F%E6%88%90%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81
    niaoren
        20
    niaoren  
       2014-09-19 10:02:56 +08:00
    我的上述方法可以做到PC端网页和手机端分离实现。

    楼上有朋友提到网页授权方案,但是现状离开微信浏览器是实现不了的
    abelyao
        21
    abelyao  
    OP
       2014-09-19 10:03:14 +08:00
    @niaoren 貌似生成二维码也属于高级接口,300元啊… 哎…
    另外就是想要全过程可在手机上完成,手机扫手机页面上的二维码… 貌似需要两部手机…
    Wy4q3489O1z996QO
        22
    Wy4q3489O1z996QO  
       2014-09-19 10:25:09 +08:00
    @abelyao 现在才想明白,神马支付手续费、认证费都要爽快的交,否则后续的时间成本会远远超过这一点点费用。
    abelyao
        23
    abelyao  
    OP
       2014-09-19 10:27:17 +08:00
    @romotc 其实300元完全可以承受,哪怕每年都有,也行,就像你说的,带来了很多方便和功能。问题是之前个人注册的服务号,要申请认证,得找人借个营业执照什么的… 这个比较麻烦
    akira
        24
    akira  
       2014-09-19 10:59:09 +08:00
    你的查询功能连300块都不值的话,还折腾来干嘛
    abelyao
        25
    abelyao  
    OP
       2014-09-19 11:02:39 +08:00
    @akira 呵呵,话别说得这么绝对,300元没问题,但认证的手续呢,材料呢,如果是个人开发没有营业执照呢?你说这话对你的回复没有任何价值
    akira
        26
    akira  
       2014-09-19 15:34:02 +08:00
    @abelyao 好吧,只看你前面有说认证要300大洋,不想弄。

    但是认证要的材料,找个朋友应该也不是什么太难的事情。
    kiyoometal
        27
    kiyoometal  
       2019-03-14 13:37:10 +08:00
    认证的话 主要还是企业、个人的确不太好申请,用别人的也不太方便啊,毕竟涉及到营业执照啥的 0.0
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3120 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 11:55 PVG 19:55 LAX 04:55 JFK 07:55
    Do have faith in what you're doing.
    ubao 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