使用Umeng的第三方登錄就非常簡(jiǎn)單了,和分享用的是一個(gè)框架牺氨,只需要在登錄的時(shí)候調(diào)用一下方法就OK了
1.微信登錄
在點(diǎn)擊圖標(biāo)的時(shí)候調(diào)用這個(gè)方法(其中if括號(hào)里面的是用來(lái)判斷是否安裝了微信客戶端,你也可以用這個(gè)來(lái)做圖標(biāo)的顯示與否的判斷)
if ([WXApi isWXAppInstalled]) {//
SendAuthReq* req = [[SendAuthReq alloc ] init ];
req.scope = @"snsapi_userinfo" ;
req.state = @"login" ;
//第三方向微信終端發(fā)送一個(gè)SendAuthReq消息結(jié)構(gòu)
[WXApi sendReq:req];
}
微信的回調(diào)會(huì)調(diào)用這個(gè)方法- (void)onResp:(BaseResp*)resp
,主要用來(lái)判斷是否授權(quán)登錄
if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
// 這里做分享的邏輯
}else if([resp isKindOfClass:[SendAuthResp class]]){
// 這里做登錄的邏輯
}
這里有各種狀態(tài)的狀態(tài)碼
WXSuccess = 0, /**< 成功 */
WXErrCodeCommon = -1, /**< 普通錯(cuò)誤類(lèi)型 */
WXErrCodeUserCancel = -2, /**< 用戶點(diǎn)擊取消并返回 */
WXErrCodeSentFail = -3, /**< 發(fā)送失敗 */
WXErrCodeAuthDeny = -4, /**< 授權(quán)失敗 */
WXErrCodeUnsupport = -5, /**< 微信不支持 */
授權(quán)成功會(huì)返回一個(gè)code碼
調(diào)用這個(gè)接口(https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET)
獲取access_token,注意其中的參數(shù)要換成你們公司申請(qǐng)時(shí)的參數(shù).
這時(shí)你不僅獲取到了access_token還有其他的一些參數(shù)比如openid等,因?yàn)樽龅谌降卿浤氵€需要獲取用戶的數(shù)據(jù),
你就需要調(diào)用這個(gè)接口(https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN )
其中的參數(shù)就傳之前獲取回來(lái)的參數(shù),這是還會(huì)返回很多數(shù)據(jù),你選擇你需要的數(shù)據(jù)發(fā)送給你的服務(wù)器就好了,比如nickname(用戶的昵稱)/openid(用戶的標(biāo)識(shí)十籍,對(duì)當(dāng)前公眾號(hào)唯一)/headimgurl(用戶頭像)等等
這樣的集成就好了!!