在之前的博客IOS開發之新浪圍脖中獲取微博的內容是使用我自己的access_token來請求的數據,那么如何讓其他用戶也能登陸並獲取自己的微博內容呢?接下來就是OAuth和SSO出場的時候啦。OAuth的全稱為Open Authorization 開發授權,SSO--單點登陸(Single Sign On)。至於其原理是什么,更具體的介紹網上的資料是一抓一大把,在這就不做過多的原理性的概述。當然啦,OAuth和SSO在Web和其他手機終端上應用還是蠻多的,所有這方面的資料也是多的很。
簡單的說就是可以通過新浪的OAuth把之前access_token換成用戶自己的access_token,從而請求自己微博的內容(因為之前做的的關於新浪微博的東西,所以用到是新浪提供的OAuth)。更詳細的內容請參考新浪對OAuth2.0授權認證,iOS版SDK的GitHub下載如下:https://github.com/sinaweibosdk/weibo_ios_sdk 其中有詳細的使用說明並附有使用Demo.所以sdk的使用在這就不做過多的贅述。可能有的小伙伴會問哪本篇博客要介紹什么東西呢?本篇博客就是被之前的新浪微博加上OAuth授權認證,給之前的博客做一個善后工作。
1.還是在博客的開頭先來幾張截圖(第一張是沒有登錄時的啟動圖,第二張是獲取授權的頁面,第三張是授權后的頁面,第四張是把之前寫的iOS開發之自定義表情鍵盤(組件封裝與自動布局)整合了進來)這樣的話一個App的基本功能算是有啦。
2.在今天的博客中沒有大量的代碼,只是對之前博客中的內容的一個應用,如何用新浪的OAuth的SDK,新浪給提供的開發文檔中說明的很詳細了,筆者也是按上面一步步做的,沒有太大問題。上面給出了SDK的下載地址,有興趣小伙伴可以下載一個研究研究。
3.在用戶授權以后,新浪接口或返回一些用戶的信息,其中就有該授權用戶所對應的access_token, 下面是響應代碼,把返回的用戶access_token存入到了NSUserDefaults中,關於NSUserDefault的具體內容請參考之前的博客IOS開發之記錄用戶登陸狀態,在這就不做贅述了。
1 - (void)didReceiveWeiboResponse:(WBBaseResponse *)response 2 { 3 if ([response isKindOfClass:WBSendMessageToWeiboResponse.class]) 4 { 5 NSString *title = @"發送結果"; 6 NSString *message = [NSString stringWithFormat:@"響應狀態: %d\n響應UserInfo數據: %@\n原請求UserInfo數據: %@", 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.添加我們的自定義鍵盤也挺簡單的,因為之前是用純代碼封裝的自定義鍵盤並留有響應的接口,所有移植到我們的新浪微博上就是一個拷貝粘貼的體力活,關於自定義鍵盤的東西請參考之前的博客iOS開發之自定義表情鍵盤(組件封裝與自動布局),在這就不做贅述。
這篇博客作為對之前開發的新浪微博做一個總結,記得前面有一篇博客是IOS開發之微信山寨版,其實在這篇博客中只有視圖間的關系,沒有具體的業務邏輯,在接下來的一段時間里要完善山寨版的微信,並加上實時通訊的內容,希望大家繼續關注。