iOS编写自己的社交网络客户端流程

iOS提供了一个SLRequest类,它封装了HTTP协议请求对象,它能提供HTTP请求的GET、POST和DELETE方法,它为iOS中的新浪微博、Twitter、Facebook应用开发通过了统一的开发接口。

要编写社交网络客户端程序大致分为4个主要步骤(以新浪微博客户端为例):

1、引入Accounts和Social框架

TARGETS->WeiBo->Build Phases->Link Binary With Libraries,选择右下角的“+”按钮,打开框架和库选择对话框,分别选择Social.framework添加,再选择Accounts.framework添加。

2、用户帐户认证

用户帐户认证使用ACAccount、ACAccountStore和ACAccountType类,ACAccount封装用户账户信息,这些信息存储在账户数据库中,ACAccountStore类用来管理账户数据库,ACAccountType类描述了账户类型。

认证过程模版如下:

ACAccountSotre *account = [[ACAccountStore alloc] init];

ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierSinaWeibo];

[account requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error)

{

if(granted == YES)

{

NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];

if([arrayOfAccounts count] > 0)

{

<认证通过>

}

}

}];


3、发送请求

用户认证通过就可以发送请求,使用SLRequest对象发送请求,创建SLRequest对象可以使用类级构造方法requestForServiceType:  requestMethod:  URL:  parameters:

下面代码是创建SLRequest对象:

SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeSinaWeibo requestMethod:SLRequestMethodGET URL:requestURL parameters:parameters];

requestForServiceType部分参数指定请求的服务类型;requestMethod部分指定HTTP请求方法,这参数取值是定义枚举SLRequestMethod中的常量:

(1)SLRequestMethodGET;

(2)SLRequestMethodPOST;

(3)SLRequestMethodDELETE;

URL部分指定的请求的URL,指定是由社交网络服务提供给我们的,而且不同的功能也有所不同,可到他们(Facebook,twitter,新浪微博等)的开发者网站查看详细说明。

上面只是创建了SLRequest对象,还需要为请求对象设置账户信息:

requset.account = weiboAccount;

weiboAccount账户信息是我们从用户账户信息数据库中获得的,设置给请求对象的account属性,然后才能提交给社交网络服务器进行认证。

具体开始请求是通过调用SLRequest的performRequestWithHandler:方法实现的:

[request performRequestWithhandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)

{

<处理请求结果>

}];


4、处理请求结果

请求结束会调用代码块,我们在代码块中处理请求结果。基本工作是解析数据,以及UI更新等操作。这三个社交网络服务返回的都是JSON格式数据,其中代码块中responseData参数可以使用NSJSONSerialization解析JSON对象:

id jsonObj = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:&err];

解析的jsonObj对象结构根据社交网络服务的不同而不同,详细参数情况请参考不同服务的开发者网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值