在之前的博客IOS開(kāi)發(fā)之新浪圍脖中獲取微博的內(nèi)容是使用我自己的access_token來(lái)請(qǐng)求的數(shù)據(jù),那么如何讓其他用戶也能登陸并獲取自己的微博內(nèi)容呢?接下來(lái)就是OAuth和SSO出場(chǎng)的時(shí)候啦。OAuth的全稱為Open Authorization 開(kāi)發(fā)授權(quán),SSO--單點(diǎn)登陸(Single Sign On)。至于其原理是什么,更具體的介紹網(wǎng)上的資料是一抓一大把,在這就不做過(guò)多的原理性的概述。當(dāng)然啦,OAuth和SSO在Web和其他手機(jī)終端上應(yīng)用還是蠻多的,所有這方面的資料也是多的很。
  簡(jiǎn)單的說(shuō)就是可以通過(guò)新浪的OAuth把之前access_token換成用戶自己的access_token,從而請(qǐng)求自己微博的內(nèi)容(因?yàn)橹白龅牡年P(guān)于新浪微博的東西,所以用到是新浪提供的OAuth)。更詳細(xì)的內(nèi)容請(qǐng)參考新浪對(duì)OAuth2.0授權(quán)認(rèn)證,iOS版SDK的GitHub下載如下:https://github.com/sinaweibosdk/weibo_ios_sdk 其中有詳細(xì)的使用說(shuō)明并附有使用Demo.所以sdk的使用在這就不做過(guò)多的贅述。可能有的小伙伴會(huì)問(wèn)哪本篇博客要介紹什么東西呢?本篇博客就是被之前的新浪微博加上OAuth授權(quán)認(rèn)證,給之前的博客做一個(gè)善后工作。
1.還是在博客的開(kāi)頭先來(lái)幾張截圖(第一張是沒(méi)有登錄時(shí)的啟動(dòng)圖,第二張是獲取授權(quán)的頁(yè)面,第三張是授權(quán)后的頁(yè)面,第四張是把之前寫(xiě)的iOS開(kāi)發(fā)之自定義表情鍵盤(pán)(組件封裝與自動(dòng)布局)整合了進(jìn)來(lái))這樣的話一個(gè)App的基本功能算是有啦。

2.在今天的博客中沒(méi)有大量的代碼,只是對(duì)之前博客中的內(nèi)容的一個(gè)應(yīng)用,如何用新浪的OAuth的SDK,新浪給提供的開(kāi)發(fā)文檔中說(shuō)明的很詳細(xì)了,筆者也是按上面一步步做的,沒(méi)有太大問(wèn)題。上面給出了SDK的下載地址,有興趣小伙伴可以下載一個(gè)研究研究。
3.在用戶授權(quán)以后,新浪接口或返回一些用戶的信息,其中就有該授權(quán)用戶所對(duì)應(yīng)的access_token, 下面是響應(yīng)代碼,把返回的用戶access_token存入到了NSUserDefaults中,關(guān)于NSUserDefault的具體內(nèi)容請(qǐng)參考之前的博客IOS開(kāi)發(fā)之記錄用戶登陸狀態(tài),在這就不做贅述了。
1 - (void)didReceiveWeiboResponse:(WBBaseResponse *)response 2 { 3 if ([response isKindOfClass:WBSendMessageToWeiboResponse.class]) 4 { 5 NSString *title = @"發(fā)送結(jié)果"; 6 NSString *message = [NSString stringWithFormat:@"響應(yīng)狀態(tài): %d/n響應(yīng)UserInfo數(shù)據(jù): %@/n原請(qǐng)求UserInfo數(shù)據(jù): %@", 7 response.statusCode, response.userInfo, response.requestUserInfo]; 8 NSLog(@"%@", message); 9 }10 else if ([response isKindOfClass:WBAuthorizeResponse.class])11 {12 13 self.wbtoken = [(WBAuthorizeResponse *)response accessToken];14 15 if (self.wbtoken != nil) {16 //獲取userDefault單例17 NSUserDefaults *token = [NSUserDefaults standardUserDefaults];18 [token setObject:self.wbtoken forKey:@"token"];19 }20 }21 }
4.添加我們的自定義鍵盤(pán)也挺簡(jiǎn)單的,因?yàn)橹笆怯眉兇a封裝的自定義鍵盤(pán)并留有響應(yīng)的接口,所有移植到我們的新浪微博上就是一個(gè)拷貝粘貼的體力活,關(guān)于自定義鍵盤(pán)的東西請(qǐng)參考之前的博客iOS開(kāi)發(fā)之自定義表情鍵盤(pán)(組件封裝與自動(dòng)布局),在這就不做贅述。
這篇博客作為對(duì)之前開(kāi)發(fā)的新浪微博做一個(gè)總結(jié),記得前面有一篇博客是IOS開(kāi)發(fā)之微信山寨版,其實(shí)在這篇博客中只有視圖間的關(guān)系,沒(méi)有具體的業(yè)務(wù)邏輯,在接下來(lái)的一段時(shí)間里要完善山寨版的微信,并加上實(shí)時(shí)通訊的內(nèi)容,希望大家繼續(xù)關(guān)注。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注