zoukankan      html  css  js  c++  java
  • 微信自定义菜单view类型获取openid访问网页

    转自:http://jingyan.baidu.com/article/48206aeae7aa24216ad6b3f3.html

    用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值 (即网页链接),达到打开网页的目的,但是view不能获取用户的openid,需与网页授权获取用户基本信息接口结合使用,获得用户的登入个人信息。

    1. 对比view和click菜单

      {        

       "type":"click",      

       "name":"今日歌曲",      

       "key":"V1001_TODAY_MUSIC" 

       },  

      {      

           "type":"view",     

           "name":"歌手简介",     

           "url":"http://www.baidu.com/" 

       } 

      从上面可以看出,click类型的菜单有key属性,而view类型的菜单没有key属性,与之对应的是url属性。key值是用于判断用户点击了哪个click类型的菜单项。而view类型的菜单没有key属性,无法在公众账号后台判断是否有用户点击了view类型的菜单项,也就没办法知道哪个用户点击了view类型的菜单项,好在腾讯开放了高级接口,运用OAuth2.0网页授权接口可以获取openid,下面将介绍网页授权获取用户基本信息接口。

    2.  

      网页授权获取用户基本信息

      服务号获得高级接口后,默认带有scope参数中的snsapi_base和snsapi_userinfo。这里使用snsapi_base获取openid,把上面的url换成

      微信自定义菜单view类型获取openid访问网页
    3.  

      配置授权回调页面域名

      进入微信公众平台后台后,依次进入 服务-我的服务,找到OAuth2.0网页授权,

      微信自定义菜单view类型获取openid访问网页
    4.  

      点击右侧的修改

      授权回调域名配置规范为全域名并且不带http。

      这里我们填写上面的ip地址,192.168.1.1

      微信自定义菜单view类型获取openid访问网页
      微信自定义菜单view类型获取openid访问网页
    5.  

      用户授权并获取code,把菜单更换成

      {      

           "type":"view",     

           "name":"歌手简介",     

           "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxcd983566d32442bc&redirect_uri=http://192.168.1.1/weixin/weixin.do?action=viewtest&response_type=code&scope=snsapi_base&state=1#wechat_redirect" 

       } 

      菜单跳转的action

       String code = request.getParameter("code");//我们要的code

      code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

      微信自定义菜单view类型获取openid访问网页
    6.  

      使用code换取access_token

      网页授权的作用域为snsapi_base,本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

      换取网页授权access_token页面的构造方式:

      https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

      微信自定义菜单view类型获取openid访问网页
    7.  

      正确时返回json数据

      {   "access_token":"ACCESS_TOKEN",   

          "expires_in":7200,  

          "refresh_token":"REFRESH_TOKEN",   

          "openid":"OPENID",  

          "scope":"SCOPE" 

      }

      到此我们成功获取到了用户的openid

      微信自定义菜单view类型获取openid访问网页
  • 相关阅读:
    QOMO Linux 4.0 正式版发布
    LinkChecker 8.1 发布,网页链接检查
    pgBadger 2.1 发布,PG 日志分析
    Aletheia 0.1.1 发布,HTTP 调试工具
    Teiid 8.2 Beta1 发布,数据虚拟化系统
    zLogFabric 2.2 发布,集中式日志存储系统
    开源电子工作套件 Arduino Start Kit 登场
    Piwik 1.9 发布,网站访问统计系统
    Ruby 1.9.3p286 发布,安全修复版本
    toBraille 1.1.2 发布,Java 盲文库
  • 原文地址:https://www.cnblogs.com/ymy124/p/4935101.html
Copyright © 2011-2022 走看看