问题1:网页受权access_token与分享的jssdk中的access_token同样吗?api
答:不同。网页受权access_token 是一次性的,而基础支持的access_token的是有时间限制的:7200s。缓存
问题2:网页受权access_token与基础支持的access_token不一样,那微信分享中的access_token,是否是基础支持的access_token
答:是
网页受权access_token 只能获取到一个微信用户信息,是与微信用户一对一的关系,而基础支持的access_token,是对所有用户有效的。微信
问题3:网页受权access_token有次数限制吗?
答:没有限制微信开发
分为四步:app
一、引导用户进入受权页面赞成受权,获取codeurl
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
二、经过code换取网页受权access_token(与基础支持中的access_token不一样)code
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
code说明 : code做为换取access_token的票据,每次用户受权带上的code将不同,code只能使用一次,5分钟未被使用自动过时。token
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
三、若是须要,开发者能够刷新网页受权access_token,避免过时
因为access_token拥有较短的有效期,当access_token超时后,可使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效以后,须要用户从新受权。接口
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
四、经过网页受权access_token和openid获取用户基本信息(支持UnionID机制)ci
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
{ "openid":" OPENID", " nickname": NICKNAME, "sex":"1", "province":"PROVINCE" "city":"CITY", "country":"COUNTRY", "headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }
PS:应用受权做用域,snsapi_base (不弹出受权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出受权页面,可经过openid拿到昵称、性别、所在地。而且, 即便在未关注的状况下,只要用户受权,也能获取其信息 )
https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
access_token,网页受权接口调用凭证,注意:此access_token与基础支持的access_token不一样 openid 用户的惟一标识
生成签名以前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常状况下,jsapi_ticket的有效期为7200秒,经过access_token来获取。因为获取jsapi_ticket的api调用次数很是有限,频繁刷新jsapi_ticket会致使api调用受限,影响自身业务,开发者必须在本身的服务全局缓存jsapi_ticket 。
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
{ "errcode":0, "errmsg":"ok", "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA", "expires_in":7200 }