要編寫社交網絡客戶端程序,可以大體上分為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”按鈕取消發送。
新聞熱點
疑難解答