微信开发 - 获取网页授权access_token、openid以及用户信息
微信公众平台开发中,会遇到一个叫openid的东西,它是公众号普通用户的一个唯一标识,即同一用户针对同一公众号的openid是唯一的。
在关注者与公众号产生消息交互后,公众号可获得关注者的openid,但请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的openid。
获取网页授权access_token、openid
一、用户同意授权,获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect |
1、appid 公众号的唯一标识 2、redirect_uri 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 3、response_type 返回类型,请填写code 4、scope 应用授权作用域 (1)snsapi_base:不弹出授权页面,直接跳转,只能获取用户openid (2)snsapi_userinfo:弹出授权页面,可通过openid拿到昵称、性别、所在地。 5、state 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 6、#wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数 |
注意这个接口中有个参数scope 默认有2个值snsapi_base和snsapi_userinfo,这个接口会根据scope 来生成不同的code并且获取不同作用的access_token,不管scope传什么值都能在得到对应access_token的同时得到openid, 如果你只需要得到opendid 那使用snsapi_base参数到此结束了,如果需要获取用户的其他信息比如昵称、地址、就要用snsapi_userinfo 会弹出授权。 以snsapi_base为例:以下链接可设置为微信公众平台"自定义菜单"的页面地址,点击后会发送请求到redirect_uri,并携带参数code。 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe49d******43c1cd&redirect_uri=http%3A%2F%2FdomainName%2FserverName%2FcontrollerName%2FactionName &response_type=code&scope=snsapi_base&state=STATE#wechat_redirect |
二、通过code换取网页授权access_token及openid
def getOpenId(String code) { def CODE = code def APPID = "wxe49d******43c1cd" def SECRET = "217c05ff85************db8f4c9371" URL url = new URL("https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code") def params = "APPID=" + URLEncoder.encode(APPID, "UTF-8") + "&SECRET=" + URLEncoder.encode(SECRET, "UTF-8") + "&CODE=" + URLEncoder.encode(CODE, "UTF-8") HttpURLConnection connection = (HttpURLConnection) url.openConnection() connection.setDoOutput(true) connection.setRequestMethod("POST") connection.outputStream.withWriter { Writer writer -> writer.write params } def response = connection.inputStream.withReader { Reader reader -> reader.text } def openId = JSON.parse(response).getAt("openid") return openId } 正确时返回的JSON数据包如下: { "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
注意:其中,APPID、SECRET可在微信公众平台中获取。
获取用户信息
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN |
这个接口中的access_token是获取code的时候scope 参数为snsapi_userinfo时换取的网页授权access_token
微信还有一个获取用户基本信息的接口,但是这个接口需要你关注了公众号。
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN |
此接口的access_token 是接口基础调用access_token 而不是网页授权access_token。在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
批量获取用户信息
开发者可通过该接口来批量获取用户基本信息。最多支持一次拉取100条。
https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN |
此接口的access_token 同样也是接口基础调用的access_token。
相关推荐
代码是用asp独立完成编写的,已成功运用在微信活动项目中,编写过程中搜不到具体的案例...之前放出过一个版本,较之前的版本,这次新增了缓存access_token到数据库的功能,避免在获取用户信息时重复获取access_token
本教程将详细讲解如何使用Java实现微信网页授权获取用户的openid及用户信息。 首先,我们要理解微信网页授权的基本流程。当用户访问我们的网页时,如果需要微信登录,我们会引导他们跳转到微信的OAuth2.0授权页面。...
token、openid等)01-PHP获取微信公众号网页授权和用户信息演示02-官方文档概要和需要提前准备的03-PHP获取网页返回内容04-PHP获取微信用户网页授权同意05-PHP拿到微信用户授权后的code信息06-PHP获取access
微信开发-获取access_token.pdf 微信开发-获取关注者列表,用户的openid.pdf 微信开发-获取用户基本信息.pdf 微信开发-接口配置.pdf 微信开发-接收普通消息.pdf 微信开发-接收事件推送和语音识别结果.pdf 微信...
微信网页授权是微信开放平台提供的一种接口,用于实现用户在第三方网站或应用上的一键登录,以及获取用户的微信基本信息。这个过程涉及到OAuth2.0授权框架,它为安全地获取用户信息提供了标准化流程。 首先,我们要...
本主题将深入探讨如何在ASP(Active Server Pages)环境中利用OAuth2.0接口实现微信登录,并获取用户的OpenId、Access_Token以及个人资料如头像、昵称和性别等信息。 首先,OAuth2.0是授权框架,它允许第三方应用在...
2、通过code换取网页授权access_token,用户openId等信息 3、通过access_token和用户的openId获取该用户的用户信息 因为第一步必须要经过微信的登录授权,不能网页后端请求,所以先要经过用户同意,通过页面网页...
token(与基础支持中的access_token不同)3、如果需要,开发者可以刷新网页授权access_token,避免过期4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)jsp获取微信公众号网页授权和用户...
token(与基础支持中的access_token不同)3、如果需要,开发者可以刷新网页授权access_token,避免过期4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)asp获取微信公众号网页授权和用户...
拿到access_token和openid后,可以通过微信的接口获取用户的基本信息,如昵称、头像、性别等。对于企业微信,还可以获取到用户的企业信息,如部门、职位等。 3. **企业微信授权登录** 企业微信授权登录与微信网页...
运用于实际项目中,完善后可将获取到的全局access_token缓存到数据库并判断是否需要更新,再获取用户头像、昵称、是否关注等等信息,可解决access_token重复获取的问题
在Java开发中,获取微信用户信息通常涉及到微信官方提供的OAuth2.0授权协议。OAuth2.0是一个开放标准,允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供者上的信息。这种方式允许用户授权第三...
微信OAuth2.0接口是微信官方提供的一种身份验证机制,允许第三方应用在用户授权的情况下获取其微信账号的相关信息,如OpenId、Access_Token、头像、昵称和性别等。这种接口通常用于实现微信登录功能,使得用户可以...
3. **获取用户信息**:有了access_token和openid,你可以进一步获取用户的名字和头像。如果你在第一步选择了`snsapi_userinfo`权限,可以直接请求用户信息。否则,只能获取到openid。这里我们假设你有snsapi_...
2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信息(需scope为 snsapi_userinfo) 1 获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提...
使用asp编程,运用于实际微信抽奖活动项目中,要求抽奖用户必须关注并且每天只能抽一次。代码实现将获取到的全局access_token缓存到数据库并...而后再用access_token获取昵称、头像、是否关注等用户信息并存于cookies中
微信网页开发授权登录PHP是一种常见的应用场景,特别是在移动互联网时代,许多网站和应用为了提供更便捷的服务,会通过微信平台进行用户身份验证。本教程将详细讲解如何利用PHP、MySQL和CURL技术实现这一功能。 ...
微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["re...
微信网页授权是微信提供的一种服务,允许第三方网站通过用户授权获取其微信账号的相关信息,实现安全便捷的登录功能。在这个过程中,OAuth2.0扮演了关键角色。OAuth2.0是一个开放标准,用于授权第三方应用访问用户在...