最近在接入新浪的網(wǎng)頁(yè)授權(quán)登錄痊剖,把遇到的一些問(wèn)題總結(jié)出來(lái):(所有的坑基本都源于不仔細(xì),文檔沒(méi)看清等)
1垒玲、先申請(qǐng)應(yīng)用陆馁,得到AppKey和App Secret,應(yīng)用未審核通過(guò)前是可以用申請(qǐng)賬號(hào)測(cè)試的(QQ網(wǎng)頁(yè)登錄也是一樣的)
2合愈、配置授權(quán)回調(diào)地址叮贩,未配置的話(huà),調(diào)用的時(shí)候會(huì)報(bào)錯(cuò)
3佛析、正式寫(xiě)后端代碼接入:
3.1益老、獲取code:調(diào)用https://api.weibo.com/oauth2/authorize?client_id=申請(qǐng)的appkey&response_type=code&redirect_uri=code的回調(diào)地址
3.2、獲取access_token:新浪回調(diào)我們上面填寫(xiě)的回掉地址寸莫,并攜帶code=xxxxx,我們拿到code,拼接獲取access_token的URL:https://api.weibo.com/oauth2/access_token?client_id=申請(qǐng)的AppKey&client_secret=申請(qǐng)的AppSecret&redirect_uri=回掉地址(同上)&code=6f1b3f09e51fd66be6e547e83443688d&grant_type=authorization_code,注意這里的調(diào)用方式是POST捺萌,body傳{},如果用GET請(qǐng)求會(huì)報(bào){"error":"HTTP?METHOD?is?not?suported?for?this?request!","error_code":10021,"request":"/oauth2/access_token"}储狭,這個(gè)接口會(huì)返回一個(gè)JSON對(duì)象:包含access_token互婿、uid、remind_in辽狈、expires_in慈参、isRealName 參數(shù)
3.3、獲取用戶(hù)信息:https://api.weibo.com/2/users/show.json?access_tkoen=xxx&uid=xxx,參數(shù)uid與screen_name二者必選其一刮萌,且只能選其一
得到的是JSON字符串驮配,需要轉(zhuǎn)成JSON對(duì)象。這里我們就得到了用戶(hù)授權(quán)登錄后的信息了着茸,這里得到的用戶(hù)province和city是數(shù)字壮锻,可以根據(jù)需要自己轉(zhuǎn)換成對(duì)應(yīng)的省市 省份城市編碼表,然后根據(jù)需求服務(wù)端對(duì)數(shù)據(jù)進(jìn)行緩存涮阔。