引言:

新浪微博几乎是把全平台数据的API接口都开放了出来,因此,很多优秀的第三方微博客户端在功能方面都非常的全面.

而通过SNS的分享推广方式在App世界里已经非常的普遍,甚至随处可见,本篇主要介绍一下App是如何跟新浪微博关联的.

参考资料: 

1.开发平台首页:

http://open.weibo.com/?bottomnav=1&wvr=5

2.API文档首页:

http://open.weibo.com/wiki/API文档_V2

3.API错误代码说明地址:

http://open.weibo.com/wiki/Error_code

4.iOS SDK 地址:

https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth

5.授权机制:

http://open.weibo.com/wiki/授权机制说明

6.开发者管理中心

http://open.weibo.com/apps

使用:

在管理中心中创建自己的应用以后,会得到AppKey App Secret 

这两个值 是初始化新浪微博SDK必须要用到的两个参数.

当执行 login 函数时 可能遇到的错误如下

1:访问出错提示

表示: 微博SDK初始化时设置的 appRedirectURI  和微博开放平台-开发者管理中心-应用信息-高级信息-OAuth2.0 授权设置-授权回调页

所设置的值不一样,才会出现如上错误.

2:调用新浪微博客户端授权以后没有正常返回应用.

1:检查 URL type  "URL scheme” 是否设置了名为: sinaweibosso.加AppID 如图: 

2:AppDelegate 中 是否实现委托函数:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{NSLog(@"%@",url.scheme);//如果涉及其他应用交互,请做如下判断,例如:还可能和新浪微博进行交互if ([url.scheme isEqualToString:Key_weiXinAppID]) {return [WXApi handleOpenURL:url delegate:self];}else if ([url.scheme isEqualToString:[@"sinaweibosso" stringByAppendingPathExtension:Key_sinaWeiboAppID]]){return [[SinaWeiBoManage defaultInstance].sinaWeibo handleOpenURL:url];}else{return YES;}
}

以上设置完成以后,不出意外,将会响应授权结果.

接下来就主要开始调用API来进行微博的数据交互了.

举个简单的例子,如何获取授权用户的个人信息:

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:userId forKey:@"uid"];
[sinaWeibo requestWithURL:@"users/show.json"params:paramshttpMethod:@"GET"delegate:self];

具体要传入什么参数,请查阅官方API文档.

得到结果后会响应成功或者失败的委托:

此时可以用过链接名称来识别请求类型:

- (void)request:(SinaWeiboRequest *)request didFailWithError:(NSError *)error
{//获取关注列表if ([request.url hasSuffix:@"friendships/friends.json"]){if ([delegate respondsToSelector:@selector(sinaWeiBoManage:withFriendListResult:withRequestDataType:isSuccess:)]) {[delegate sinaWeiBoManage:self withFriendListResult:nil withRequestDataType:self.requestDataType isSuccess:NO];}}
}

关于iOS 6中内置微博功能:

在iOS6中苹果集成了新浪微博的社交环境,所以,如果用户在设置界面中授权了新浪微博账户,我们第三方应用中就可以直接使用,利用其发微博等等

首先引入两个 新的 framework

分别是:

Accounts.framework :用于获取系统设置中的 账户信息

Social.framework :用于对第三方开放平台进行数据交互.

流程分为两步:

首先要知道用户有没有在系统的 设置中 授权了对应的账户,

如果拿到对应的账户信息以后就可以开始对第三方开放平台进行数据交互了,代码如下:

// Create an account store object. 创建账户集合
ACAccountStore *accountStore = [[ACAccountStore alloc] init];// Create an account type that ensures Twitter accounts are retrieved. 确定好 账户类型  新浪微博 还是 Facebook  还是 Twitter
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierSinaWeibo];// Request access from the user to use their Twitter accounts. //异步请求 来得到对应类型的账户信息
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {if(granted) {//如果 granted 返回 NO 表示一个账户都没有设置// Get the list of Twitter accounts.NSArray *accountsArray = [accountStore accountsWithAccountType:accountType]; //可能存在多个,看你要用哪个,最好让用户选择一下// For the sake of brevity, we'll assume there is only one Twitter account present.// You would ideally ask the user which account they want to tweet from, if there is more than one Twitter account present.if ([accountsArray count] > 0) {// Grab the initial Twitter account to tweet from.ACAccount *sinaWeiboAccount = [accountsArray objectAtIndex:0];NSMutableDictionary *params = [[NSMutableDictionary alloc] init];[params setObject:@"一条新的微博" forKey:@"status"];SLRequest *slRequest = [SLRequest requestForServiceType:SLServiceTypeSinaWeibo requestMethod:SLRequestMethodPOST URL:[NSURL URLWithString:@"https://open.weibo.cn/2/statuses/update.json"] parameters:params];slRequest.account = sinaWeiboAccount;//这行代码一定要赋值,负责数据交互一定失败[slRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {NSLog(@"%@ %@",urlResponse.URL,error);NSDictionary *dic =  [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil];NSLog(@"%@",dic);}];}}
}];

在拿到每个 ACAccount 以后 自身都有一个 identifier 啊在用户确认选好了使用哪个账户时最好能够保存下来,那么下次可以直接通过如下代码获取到对应的账户

[accountStore accountWithIdentifier:sinaWeiboAccount.identifier];

总结:

SNS做为应用推广的一个主要途径,是必须好好学习一下的,如何勾起和引起用户分享的欲望,让更多的人知道你的应用,那么离成功就不远了.

开放平台:新浪微博 for iOS相关推荐

  1. 开放平台:微信 for iOS

    按照常例,列一些网址先: 微信开放平台首页: http://open.weixin.qq.com 微信 iOS SDK 官方下载地址: http://open.weixin.qq.com/downlo ...

  2. 开放平台:StackMob for iOS

    引言: StackMob 是一个轻量级的 Baas 移动后端云存储平台. 为移动App提供了强大的后台云存储能力,其SDK架接在Core Data身上,在不改变Core Data API 使用方式的前 ...

  3. 互联网开放平台纵横论

    在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,叫做OpenAPI,提供OpenAPI的平台本身被称为开放平台(Open Platform). 通过开放平台, ...

  4. iOS学习之iOS5.0以上 使用新浪微博开放平台OAuth

    新浪微博开放平台为第三方应用提供了简便的合作模式,满足了手机用户和平板电脑用户随时随地分享信息的需求.通过调用平台的api即可实现很多微博上的功能. 本篇主要目的是记录新浪微博移动SDK iOS版本的 ...

  5. IOS基于新浪微博开放平台微博APP

    1.基于新浪微博开放平台APP源代码 2.gitHub源码下载地址 https://github.com/whzhaochao/SinaWeiBoOpen 3.用到的第三放开源库 3.1  RTLab ...

  6. 新浪微博开放平台账号申请(基于dcloud开发)

    注意事项: 1.新浪微博不仅需要appkey和appsecret,而且还需要回调的url,这个链接是可以随便写的,但是需要和在开放平台申请的一致. 2. Android签名包信息部分 (1.)首先安卓 ...

  7. 新浪微博开放平台,授权成功后获取用户信息

    最近做的一个ios app中需要用到第三方登录 新浪微博登录平台的sdk demo中没有只有登录和发微博功能,没有获取用户信息,看了一下sdk接口和官方文档,才发现需要发起https请求去获取用户信息 ...

  8. PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! PHP+ ...

  9. 新浪微博开放平台API中page参数的使用方法

    新浪微博开放平台API中page参数的使用方法 在做项目的时候,有时候要调用新浪微博开放平台的API.说实话,新浪微博的API功能很强大,但是API文档写的不是很清楚. 我在做项目的时候,调用了很多A ...

最新文章

  1. python 案例串接_来撸串,一个案例轻松认识Python 字符串——翻转拼接游戏
  2. 软件需求管理用例方法三
  3. 《Microduino实战》——第2章 Microduino
  4. 电路纹身-疼痛的快乐
  5. 2010 求后序遍历
  6. 04.elasticsearch_get操作
  7. Setup Factory打包时实现第三方DLL文件的注册
  8. [MEGA DEAL]专家级Java捆绑包新手(96%)
  9. POJ 1811 Prime Test
  10. linux git编译安装目录,Linux(centos) 环境下如何源码编译安装git
  11. mysql半同步模式_MySQL 半同步复制模式的实现
  12. Charles proxy tools 移动开发调试
  13. FIB常见应用明细及原理分析
  14. MyBatis批量插入几千条数据,请慎用foreach
  15. 推荐一款桌面弹窗广告拦截软件【桌面弹窗广告屏蔽】
  16. 程序猿爆笑选集(2)
  17. MySQL 的三个自问自答
  18. 二分查找算法应用-实现求平方根函数
  19. 5 torch.utils.data (Dataset,TensorDataset,DataLoader)
  20. MIMIC数据库基本信息分析

热门文章

  1. 方差分析的数学原理与公式讲解
  2. 编写一个python程序用来计算投资回收期_智慧职教Python程序设计基础题目答案
  3. Wireshark下载安装教程
  4. 在创建maven项目中出现src/main/java 和src/maim/java 报错解决方法
  5. java listfile为null_java学习日志---File实例:实现复制整个文件夹、解决listFiles()为null问题...
  6. WiFi伴侣WP版本上线
  7. Win10/11打印机错误0x0000709解决方法
  8. 奇偶校验器真值表_全加器+奇偶校验
  9. 使用Python将数据从一个文件复制到另一个文件
  10. UE4程序如何实时显示帧数