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

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

工具/原料

微信公众平台

微信公众平台认证-高级接口

方法/步骤

对比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,下面将介绍网页授权获取用户基本信息接口。

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

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

配置授权回调页面域名

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

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

点击右侧的修改

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

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

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

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

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

{

"type":"view",

"name":"歌手简介",

"url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxcd983566d32442bc&redirect_uri=;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访问网页

使用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访问网页

正确时返回json数据

{ "access_token":"ACCESS_TOKEN",

"expires_in":7200,

"refresh_token":"REFRESH_TOKEN",

"openid":"OPENID",

"scope":"SCOPE"

}

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

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

相关文章

  1. 微信公众平台-自定义菜单如何访问网页

    一个偶然的机会,我留意到API文档的自定义菜单接口发生了变化,增加了对菜单view类型的说明,用户点击view类型按钮后,会直接跳转到开发者指定的url中. 工具/原料 微信公众平台 方法/步骤 建立view类型的菜单对象 View类型的菜单有3个属性:type.name和url.在上一篇文章中,我 ...

  2. 微信公众平台入门到精通-公众平台开发模式

    从今天开始教程进入高级阶段,请大家认真.专心,还有执着.如果真觉得学不下去的可以考虑用一些现成的第三方平台,但是肯定不如自己开发来的个性化. 工具/原料 智能手机 微信APP 电脑 方法/步骤 点击公众平台后台导航的"高级功能"就可以进入,该页面有两个模式选择,分别为" ...

  3. 微信开发模式api接口文档简介

    微信公众平台开发模式对于很多人来说还是很难理解,毕竟是代码问题,这份资料,面对的主要也是有编程经验的.对于只会编辑模式的人来说.阅读会有点困难.我们现在就一起来了解一下吧! 1 文本类型息 接口获取到的消息格式: 这类信息是微信公众平台接收到的最多的消息.即用户向微信公众帐号发送文本信息.消息格式为 ...

  4. 微信自定义菜单的两种类型(click和view)

    自定义菜单的两种类型(click和view) 公众平台API文档中给出了自定义菜单的json结构示例,我从中截取两个菜单项的json代码,一个是click类型,另一个是view类型,如下所示. { "type":"click", "name" ...

  5. 在微信开发者模式下怎么使用自定义菜单

    现在我们看看用户点击我们自定义菜单项的时候都会发生什么. 工具/原料 微信公众号 配套编译环境 方法/步骤 click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event 的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定 ...

  6. 微信个性自定义菜单制作教程

    微信最新推出的个性自定义菜单功能使得微信公众平台更加细化,下面就来讲解如何设置! 工具/原料 sae bae 服务器或者空间 方法/步骤 制作个性自定义菜单代码 上传代码至服务器或者sae/bae 运行代码 完成 直接运行该文件地址后,页面显示该内容后表示自定义菜单已经创建! 注意: 参数说明 参数 ...

  7. 微信公众号支付接口开发流程 java

    微信公众号支付接口开发流程,前提你需要有认证的服务号且有微信支付功能, 有不明白的可以私信我 工具/原料 审核通过微信支付功能或服务商申请开通支付功能,这样可以省300元认证费用 方法/步骤 进入公众号后台-->开发-->接口权限-->网页授权获取用户基本信息-->修改,添加 ...

  8. Android_JSON网络解析代码+注释详解

    //完成,可以正常运行 //思路: //1.使用baseadapter进行网络JSON解析的话首先先要异步访问网络 //2.从网络中获取数据后会返回一个byte类型数组,最好格式就默认定义成byte类型数组,因为这个好处理还容易转化成字符串等等, //3.定义一个方法将byte类型数组作为参数转过去 ...

  9. 微信支付开发(开发者模式)

    方法/步骤 申请好微信公众平台(服务号才有支付功能,认证订阅号好像也有),开通支付功能,如下图: 进入开发者中心-->服务器配置,如下图:URL是你留给微信的( JAVA项目或其它)接口,可以是servlet,action等.当你点击你的微信界面自定菜单的,微信就会自动触发你的这个URL,让你 ...