要編寫社交網路用戶端程式,可以大體上分為4個主要的步驟
下面我們按照這個流程,介紹一下:
1、引入Accounts和Social架構
工 程中需要引入Accounts和Social架構,Accounts架構中有進行使用者賬戶認證所需類,Social架構中SLRequest類是我們所需 要的。添加具體步驟是選擇工程中的TARGETS→WeiBo→Build Phases→Link Binary With Libraries,選擇 右下角的“+”按鈕,開啟架構和庫選擇對話方塊。
分別選擇Social.framework添加,再選擇Accounts.framework添加。
2、使用者賬戶認證
用 戶賬戶認證使用ACAccount、ACAccountStore和ACAccountType類,ACAccount類是封裝使用者賬戶資訊,這些資訊存 儲在賬戶資料庫中,ACAccountStore類用來管理賬戶資料庫,ACAccountType類描述了賬戶類型。
認證過程的模板代碼如下:
ACAccountStore *account = [[ACAccountStore alloc] init]; ①ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierSinaWeibo]; ②[account requestAccessToAccountsWithType:accountType options:nilcompletion:^(BOOL granted, NSError *error) ③{if (granted == YES) ④{NSArray *arrayOfAccounts = [accountaccountsWithAccountType:accountType]; ⑤if ([arrayOfAccounts count] > 0) ⑥{<認證通過>}};}];
3、發送請求
使用者認證通過就可以進行發送使用SLRequest對象發送請求,建立SLRequest對象可以使用類級構造方法requestForServiceType:requestMethod:URL:parameters:,下面是代碼是建立SLRequest對象:
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeSinaWeiborequestMethod:SLRequestMethodGETURL:requestURLparameters:parameters];上面的代碼還只是建立了SLRequest對象,我們還需要為請求對象設定賬戶資訊,使用下面的語句:request.account = weiboAccount;weiboAccount賬戶資訊是我們從使用者賬戶資訊資料庫中獲得的,設定給請求對象的account屬性,然後才能提交給社交網路伺服器進行認證。具體開始請求是通過調用SLRequest 的performRequestWithHandler:方法實現的,代碼如下:[request performRequestWithHandler:^(NSData *responseData,NSHTTPURLResponse *urlResponse, NSError *error) {<處理請求結果>}];
4、處理請求結果
請求結束會調用代碼塊,我們在代碼塊中處理請求結果。基本工作是解析資料,以及UI的更新等操作。這3個社交網路服務返回的都是JSON格式資料,其中代碼塊中的responseData參數可以使用NSJSONSerialization解析JSON對象:
id jsonObj = [NSJSONSerialization JSONObjectWithData:responseDataoptions:NSJSONReadingAllowFragments error:&err];
解析的jsonObj對象結構根據社交網路服務的不同而不同,詳細參數情況請參考不同服務的開發人員網站。
下 面我們通過一個執行個體介紹一下SLRequest的使用,在表視圖畫面中,可以下拉重新整理視圖,獲得最新的社交網路服務資訊。點擊畫面導覽列的Action按 鈕,會彈出撰寫資訊的模態視圖(右圖所示),撰寫完成之後點擊“Save”按鈕發送資訊,可以點擊“Cancel”按鈕取消發送。
出自《iOS網路編程與雲端應用最佳實務》作者:關東升 @tony_關東升