社交网络编程(3)--- 通过SLRequest分享内容

前面两篇博文我们看了如何通过内建的用户界面分享内容。下面我们看看如何通过SLRequest完全自定义的用户界面。

下面,我们通过示例使用SLRequest发布tweet过程来学习:

大体上分为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类描述了账户类型。

认证过程的模板代码如下:

[cpp] view plaincopy

  1. ACAccountStore *account = [[ACAccountStore alloc] init]; ①
  2. ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:
  3. ACAccountTypeIdentifierSinaWeibo]; ②
  4. [account requestAccessToAccountsWithType:accountType options:nil
  5. completion:^(BOOL granted, NSError *error) ③
  6. {
  7. if (granted == YES) ④
  8. {
  9. NSArray *arrayOfAccounts = [account
  10. accountsWithAccountType:accountType]; ⑤
  11. if ([arrayOfAccounts count] > 0) ⑥
  12. {
  13. <认证通过>
  14. }
  15. };
  16. }];

3、发送请求

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

[cpp] view plaincopy

  1. SLRequest *request = [SLRequest  requestForServiceType:SLServiceTypeSinaWeibo
  2. requestMethod:SLRequestMethodGET
  3. URL:requestURL
  4. parameters:parameters];
  5. 上面的代码还只是创建了SLRequest对象,我们还需要为请求对象设置账户信息,使用下面的语句:
  6. request.account = weiboAccount;
  7. weiboAccount账户信息是我们从用户账户信息数据库中获得的,设置给请求对象的account属性,然后才能提交给社交网络服务器进行认证。
  8. 具体开始请求是通过调用SLRequest 的performRequestWithHandler:方法实现的,代码如下:
  9. [request performRequestWithHandler:^(NSData *responseData,
  10. NSHTTPURLResponse *urlResponse, NSError *error) {
  11. <处理请求结果>
  12. }];

4、处理请求结果

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

[cpp] view plaincopy

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

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

下面我们通过一个实例介绍一下SLRequest的使用,在表视图画面中,可以下拉刷新视图,获得最新的社交网络服务信息。点击画面导航栏的Action按钮,会弹出撰写信息的模态视图(右图所示),撰写完成之后点击“Save”按钮发送信息,可以点击“Cancel”按钮取消发送。

社交网络编程(3)--- 通过SLRequest分享内容,布布扣,bubuko.com

时间: 2024-10-10 13:28:06

社交网络编程(3)--- 通过SLRequest分享内容的相关文章

社交网络编程(1)---UIActivityViewController分享列表

1.社交网络介绍: 苹果在iOS 5中集成了Twitter,在iOS 6中又集成了Facebook 和 新浪微博. 因此,iOS 5中引入的Twitter Framework已被废弃,并被Social Framework代替. 无论是用户使用社交网络服务,还是开发人员进行开发和测试,都需要在设备上设置社交网络服务的账号信息. 2.社交网络编程API: 社交网络编程主要使用Social框架的两个类:SLComposeViewController和SLRequest. SLComposeViewCo

社交网络编程API之iOS系统自带分享

社交网络编程API 社交网络编程主要使用iOS提供的Social框架,目前Social框架主要包含两个类: SLComposeViewController 提供撰写社交信息(如微博信息)的视图控制器,有iOS系统提供UI,就是写入要分享内容的小弹出框. SLRequest封装了HTTP请求,提供了同一的请求社交网络服务的接口,能够直接与社交网路服务通信的能力,没有UI需要自己编写设计. 除了Social框架外,还有可能用到UIActivityViewControlelr和ACAccount.UI

第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 本次的内容: 实现:分享到朋友圈,qq,qq空间,微信朋友的功能. 基础接口 判断当前客户端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: ['chooseImage'], // 需要检测的JS接

Android分享内容和接收分享内容小小实现

先来说说分享,毕竟没有分享何来接收分享可谈? 分享有目前已实现的有两种方式:后台代码实现.ShareActionProvider实现,接着先说通过代码实现 Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("/storage/emulated/0/Pictures/145.jpg"

使用百度分享实现分享博客内容(分享内容动态)

又不懂的地方可以参考百度分享官网 <div class="bdsharebuttonbox"> <a href="#" class="bds_more" data-cmd="more">分享到:</a> <a href="#" class="bds_weixin" data-cmd="weixin" title="分

自定义微信易信平台分享内容

当一个链接在微信或易信浏览器里打开时,不管这个链接是公众号里的内容还是扫码打开的链接,分享给好友或是朋友圈时,分享的内容默认从网页中取,包括页面中的图片和title.当页面中没有图片时,会采用平台默认的图片,当页面没有title时,会使用页面的链接地址作为分享的标题.这里可以通过设置shareData对象和调用jsbridge方法自定义分享的数据,包括分享的图片,标题,描述等. 像这种代码太具有依赖性,使用方法完全取决于对方平台的接口,相对来说,维护成本也较高.不过有时为了项目的推广和流量,这样

微信js接口自定义分享内容

最近客户有个要求,需要给网页添加微信分享功能,当然指的是用微信自带浏览器的时候,希望用户在最后一页点击分享的时候是分享的首页.曾经无意中看到过微信公众开发者平台提供了js接口,所以试着做了做,果然,跌入了一个大坑,现在就把我的经历跟大家分享一下. 首先去腾讯给的开发者文档去看,地址就不贴了,然后 第一步,绑定域名,从客户那儿拿到了备案的域名,然后登陆微信公众平台绑定域名 第二步,在页面里引入js,官方文档中都有 第三步,设置config验证, 官方文档给了个例子,直接拿过来用,否则自己写的话很麻

分享内容到微博、QQ空间、人人网、开心网等社区

网上有不少分享内容到微博.QQ空间.人人网.开心网等社区的插件,但它们都有自己固定的样式,你不一定会喜欢. 或许你想保持你的网站的原状,添加上微博.QQ空间.人人网.开心网的LOGO图片,点击之后就可以把当前页面分享到上面几个社区,怎么做呢? 简单!只需要给这几个图片加上链接即可. 分享到微博的链接http://service.weibo.com/share/share.php?appkey=&title=KICCP%20Blog&url=http%3A%2F%2Fblog.kiccp.c

百度分享(自定义分享内容)

百度分享默认的分享内容为您当前页面的title,但您可以通过如下方法来自定义您想要分享出去的内容. 1.通过全局配置进行修改: <!-- Baidu Button BEGIN --> <div id="bdshare" class="bdshare_t bds_tools get-codes-bdshare"> <a class="bds_qzone">QQ空间</a> <a class=&q