要編寫社交網(wǎng)絡(luò)客戶端程序,可以大體上分為4個(gè)主要的步驟
下面我們按照這個(gè)流程,介紹一下:
1、引入Accounts和Social框架
工 程中需要引入Accounts和Social框架,Accounts框架中有進(jìn)行用戶賬戶認(rèn)證所需類,Social框架中SLRequest類是我們所需 要的。添加具體步驟是選擇工程中的TARGETS→WeiBo→Build Phases→Link Binary With Libraries,選擇 右下角的“+”按鈕,打開(kāi)框架和庫(kù)選擇對(duì)話框。
分別選擇Social.framework添加,再選擇Accounts.framework添加。
2、用戶賬戶認(rèn)證
用 戶賬戶認(rèn)證使用ACAccount、ACAccountStore和ACAccountType類,ACAccount類是封裝用戶賬戶信息,這些信息存 儲(chǔ)在賬戶數(shù)據(jù)庫(kù)中,ACAccountStore類用來(lái)管理賬戶數(shù)據(jù)庫(kù),ACAccountType類描述了賬戶類型。
認(rèn)證過(guò)程的模板代碼如下:
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) ⑥{<認(rèn)證通過(guò)>}};}];
3、發(fā)送請(qǐng)求
用戶認(rèn)證通過(guò)就可以進(jìn)行發(fā)送使用SLRequest對(duì)象發(fā)送請(qǐng)求,創(chuàng)建SLRequest對(duì)象可以使用類級(jí)構(gòu)造方法
requestForServiceType:requestMethod:URL:parameters:,下面是代碼是創(chuàng)建SLRequest對(duì)象:SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeSinaWeiborequestMethod:SLRequestMethodGETURL:requestURLparameters:parameters];上面的代碼還只是創(chuàng)建了SLRequest對(duì)象,我們還需要為請(qǐng)求對(duì)象設(shè)置賬戶信息,使用下面的語(yǔ)句:request.account = weiboAccount;weiboAccount賬戶信息是我們從用戶賬戶信息數(shù)據(jù)庫(kù)中獲得的,設(shè)置給請(qǐng)求對(duì)象的account屬性,然后才能提交給社交網(wǎng)絡(luò)服務(wù)器進(jìn)行認(rèn)證。具體開(kāi)始請(qǐng)求是通過(guò)調(diào)用SLRequest 的performRequestWithHandler:方法實(shí)現(xiàn)的,代碼如下:[request performRequestWithHandler:^(NSData *responseData,NSHTTPURLResponse *urlResponse, NSError *error) {<處理請(qǐng)求結(jié)果>}];
4、處理請(qǐng)求結(jié)果
請(qǐng)求結(jié)束會(huì)調(diào)用代碼塊,我們?cè)诖a塊中處理請(qǐng)求結(jié)果。基本工作是解析數(shù)據(jù),以及UI的更新等操作。這3個(gè)社交網(wǎng)絡(luò)服務(wù)返回的都是JSON格式數(shù)據(jù),其中代碼塊中的responseData參數(shù)可以使用NSJSONSerialization解析JSON對(duì)象:
id jsonObj = [NSJSONSerialization JSONObjectWithData:responseDataoptions:NSJSONReadingAllowFragments error:&err];
解析的jsonObj對(duì)象結(jié)構(gòu)根據(jù)社交網(wǎng)絡(luò)服務(wù)的不同而不同,詳細(xì)參數(shù)情況請(qǐng)參考不同服務(wù)的開(kāi)發(fā)者網(wǎng)站。
下 面我們通過(guò)一個(gè)實(shí)例介紹一下SLRequest的使用,在表視圖畫面中,可以下拉刷新視圖,獲得最新的社交網(wǎng)絡(luò)服務(wù)信息。點(diǎn)擊畫面導(dǎo)航欄的Action按 鈕,會(huì)彈出撰寫信息的模態(tài)視圖(右圖所示),撰寫完成之后點(diǎn)擊“Save”按鈕發(fā)送信息,可以點(diǎn)擊“Cancel”按鈕取消發(fā)送。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注