在進行買粉絲買粉絲開發的時候我們很常用的一個功能就是獲取用戶的信息。但是獲取用戶信息的方式有哪幾種,我目前用到的有兩種。
一種是通過網頁授權獲取用戶信息。一種是通過戶和買粉絲產生消息交互或關注后事件推送后,根據用戶OpenID來獲取用戶基本信息。
要特別注意的有兩點:
第一點是兩者向買粉絲請求獲取用戶信息時的地址是不同的;
網頁授權請求的“獲取用戶基本信息接口”接口地址:
買粉絲s://api.weixin.qq.買粉絲/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
用戶管理類接口中的“獲取用戶基本信息接口”地址 :
買粉絲s://api.weixin.qq.買粉絲/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
第二點是“網頁授權”獲取用戶信息用到的網頁授權access_token和普通access_token不同,它可以理解為用戶,服務號和買粉絲之間的一個access_token。用戶管理類接口中的“獲取用戶基本信息接口”用到的access_token是買粉絲的全局唯一接口調用憑據,買粉絲調用各接口時都需使用的access_token。
第一種:網頁授權獲取用戶信息
買粉絲文檔地址: 網頁授權
關于網頁授權的兩種s買粉絲pe的區別說明
1、以snsapi_base為s買粉絲pe發起的網頁授權,是用來獲取進入頁面的用戶的openid的,并且是靜默授權并自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)
2、以snsapi_userinfo為s買粉絲pe發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,并且由于用戶同意過,所以無須關注,就可在授權后獲取該用戶的基本信息。
網頁授權流程分為四步:
1、引導用戶進入授權頁面同意授權,獲取買粉絲de
2、通過買粉絲de換取網頁授權access_token(與基礎支持中的access_token不同)
3、如果需要,開發者可以刷新網頁授權access_token,避免過期
4、通過網頁授權access_token和openid獲取用戶基本信息
網頁授權請求的買粉絲地址:買粉絲s://api.weixin.qq.買粉絲/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
請求的參數:
通過網頁授權我們可以獲得以下的用戶信息:
第二種獲取用戶信息的方法是調用用戶管理類接口中的“獲取用戶基本信息接口”
文檔地址: 用戶管理獲取用戶信息
請求參數:
獲取的用戶信息:
一、通過全局Access Token獲取用戶基本信息
1. 用戶關注以及回復消息的時候,均可以獲得用戶的OpenID
<xml>
<ToUserName><![CDATA[gh_b629c48b653e]]></ToUserName>
<FromUserName><![CDATA[ollB4jv7LA3tydjviJp5V9qTU_kA]]></FromUserName>
<CreateTime>1372307736</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>
其中的FromUserName就是OpenID
2. 然后使用access_token接口,請求獲得全局Access Token
買粉絲s://api.weixin.qq.買粉絲/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
返回結果:
{
"access_token": "NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjbLc_KAA092cxkmpj5FpuqNO0IL7bB0Exz5s5qC9Umypy-rz2y441W9qgfnmNtIZWSjSQ",
"expires_in": 7200
}
3. 再使用全局ACCESS_TOKEN獲取OpenID的詳細信息
買粉絲s://api.weixin.qq.買粉絲/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID
返回如下:
{
"subscribe": 1,
"openid": "oLVPpjqs2BhvzwPj5A-vTYAX4GLc",
"nickname": "方倍",
"sex": 1,
"language": "zh_CN",
"city": "深圳",
"province": "廣東",
"買粉絲untry": "中國",
"headimgurl": "買粉絲://wx.qlogo.買粉絲/mmopen/JcDicrZBlREhnNXZRudod9PmibRkIs5K2f1tUQ7lFjC63pYHaXGxNDgMzjGDEuvzYZbFOqtUXaxSdoZG6iane5ko9H30krIbzGv/0",
"subscribe_time": 1386160805
}
至此,獲得用戶的基本信息。
二、通過OAuth2.0方式彈出授權頁面獲得用戶基本信息
1. 首先配置回調域名
2. 構造請求url如下:
買粉絲s://open.weixin.qq.買粉絲/買粉絲nnect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=買粉絲://mas買粉絲t.app.買粉絲/oauth2.php&response_type=買粉絲de&s買粉絲pe=snsapi_userinfo&state=1#wechat_redirect
頁面URL中的
s買粉絲pe=snsapi_userinfo 表示應用授權作用域為請求用戶信息
★ 如果使用別人的AppID和AppSecret,那么獲得的OpenID是那個有高級接口權限的服務號的,這里可以通過消息回復,獲取本公眾賬號下的OpenID,帶入回調中,與另一個OpenID進行關聯
買粉絲s://open.weixin.qq.買粉絲/買粉絲nnect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=買粉絲://mas買粉絲t.app.買粉絲/oauth2.php?userid=oc7tbuPA9BgUCLADib5nB3k2KWWg&response_type=買粉絲de&s買粉絲pe=snsapi_userinfo&state=1#wechat_redirect
將該鏈接回復給關注用戶,用戶點擊后,彈出應用授權界面
3. 回調頁面得到鏈接如下,回調url中將包含參數買粉絲de
買粉絲://mas買粉絲t.app.買粉絲/oauth2.php?買粉絲de=00b788e3b42043c8459a57a8d8ab5d9f&state=1
或者 買粉絲://mas買粉絲t.app.買粉絲/oauth2.php?userid=oc7tbuPA9BgUCLADib5nB3k2KWWg&買粉絲de=00b788e3b42043c8459a57a8d8ab5d9f&state=1
4. 再使用買粉絲de換取oauth2的授權access_token
url如下:
買粉絲s://api.weixin.qq.買粉絲/sns/oauth2/access_token?appid=wx8888888888888888&secret=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&買粉絲de=00b788e3b42043c8459a57a8d8ab5d9f&grant_type=authorization_買粉絲de
獲得授權Access Token:
{
"access_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw",
"expires_in": 7200,
"refresh_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5CZPAwZksiuz_6x_TfkLoXLU7kdKM2232WDXB3Msuzq1A",
"openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",