新浪微博iOS版SDK“宝玉XP”框…

[转自网络]

声明:这是一篇菜鸟文章,主要目的就是教你怎么把新浪微博的SDK加到你的项目中 然后可以 使用他的一些基本功能。

牛顿说过:我现在哪怕有一点点成就那都是因为我站在大个子的肩膀上!

所以我们要感谢技术大牛们在网络上分享的资料    而且 宝玉xp 在微博上还耐心的回答了我的 问题

这个是我的主要参考链接 http://www.cocoachina.com/bbs/read.php?tid=73476  建议大家先看一下,主要是讲那个OAuth授权机制的。

虽然现在我对新浪OAuth授权机制还是不明白 但是怎么用我还是清楚的。现在我就说一下怎么让这个玩意儿在你项目中跑起来。

第一步 去新浪官方下载SDK  http://open.weibo.com/wiki/SDK

请注意我 下载的不是新浪官方的版本 而是由网友 宝玉xp提供的版本 这个也是新浪官方认可的

这个是下载链接
https://github.com/JimLiu/WeiboSDK

然后打开解压 这里我提一下我下面说到的方法或者 文件都是来自 SinaWeiboOAuthDemo 这个例子的  大家可以参照看一下


第二步 新建一个你的工程 随便那个模板 我就以空模板为例说一下

在你使用微博功能的这个 controller必须是一个 UINavigationController 的输出口 这个能明白吧?

现在你可以把新浪微博SDK的文件加过来了

具体都那些文件呢? 除了例子里边的RootViewController SinaWeiboOAuthDemoAppDel egate 不加 其他的都加

那如果你把Resources或者其他不相干的文件也加过来了 那我无话可说 

添加framework 这个应该都知道吧 反正我也没记他到底用的那几个framework 就照着例子 代码  它有的就都加上

我在这里解决的都是我在使用中遇到的问题 所以可能会有一些不周到的地方 还需要大家自己学习 毕竟咱们都是离开幼儿园的人了。

请注意:这个时候你编译会错误 别着急这个问题我已经解决了

点击查看第一个错误是提示你    TouchXML.h  这个文件找不到 我靠太坑爹了!竟然会找不到文件 怎么搞的?

当时我就去找这个文件 我日 没找到! 那怎么办呀? 我就想 别的文件好好的你不用 非要用这个没有的 那我索性连你也删了

找到    CXMLElementAdditions  这个文件把它的.h .m 都删了。

OK 保存 编译 又有错误! 还他妈是二十多个! 别慌 这个问题我也解决了

  找到 OAToken_KeychainExtensions 这个文件 把它的.h .m 也都删了。 OK现在编译已经没问题了。

第三步

这个时候大家可能会问 在原贴中提到 RootViewController 是SDK和你交互的类 但是我没用这个, 

因为具体怎么交互或者使用他那些功能都是你说了算的 所以我们根据自己的功能来实现它。

首先在你的 controller .h文件里添加这两个委托 OAuthControllerDelegate, OAuthEngineDelegate 

然后实现它, 怎么实现? 你不知道! 我也不知道!

  幸好有人知道 两个委托一共六个方法在例子代码 RootViewController.m 的最下边 你把复制过来就可以了 记住:这个很关键!

其中OAuthEngineDelegate 这个委托方法是用来保存和修改授权信息的 有了它你只需要授权一次 然后随时都可以使用他的功能了。

现在开始添加授权方法了 你必须添加一个 OAuthEngine 类的全局变量 然后把他初始化 

      if (!_engine){
            _engine = [[OAuthEngine alloc] initOAuthWithDelegate: self];
            _engine.consumerKey = kOAuthConsumerKey;
            _engine.consumerSecret = kOAuthConsumerSecret;
} 这个是初始化方法 必须的! 至于那个宏是怎么来 这个你应该知道  这两个宏是和你 应用相关的Key

然后用 performSelector 执行这个方法

- (void)loadTimeline {
      UIViewController *controller = [OAuthController controllerToEnterCredent ialsWithEngine: _engine delegate: self];
       
      if (controller){
            [self presentModalViewControll er: controller animated: YES];
      }
      else {
            NSLog(@"Authenicated for %@..", _engine.username);
            [OAuthEngine setCurrentOAuthEngine:_engine];
            [self loadData];

      }
}

这也是一个非常重要的方法 具体怎么关键我也说不清楚 但是我知道它是干啥的

if语句在第一次授权的时候会调用 如果授权完成了 每次都会调用else里边的语句

所以 [self loadData]; 获取数据的方法调用就添在这就可以了  同时你也可以根据它执行了那句来确定到底有没有授权。

OK 认证步骤就完成了 

以后不管你什么地方想用微博功能 只要添加协议 实现委托方法 然后再加上 上面的这两个方法 你就能正常的使用了。

最后一步 获取数据

具体数据怎么用是你的事情 例子里边是获取了登陆用户的微博信息 然后把它弄到一个tableView里边

获取数据主要是两种类型

一个是获取微博信息 二获取用户资料

这里有两个数据类说一下 

Status 他用来存储微博信息的类

User 用来存储用户信息的类

所以你获取到这两种数据的处理方法有些区别

开始获取数据了 你必须初始化 WeiboClient 这个类的一个对象 用来请求 服务器数据 具体怎么请求 管他呢!你只要给他传递正确的参数就可以了。

      weiboClient = [[WeiboClient alloc] initWithTarget:self 
                                                                      engine:_engine
                                                                      action:@selector(followDidReceive:obj:)];

这是初始化方法 其中那个 engine 参数就是刚才你初始化好的OAuthEngine 对象 

这里的 selector 方法很重要 他指的就是 获取完数据以后要调用的方法 也就是你接收到数据然后怎么处理他

注意 获取微博信息 和用户信息 selector 方法不一样

why? 呵呵 因为你取的数据类型不一样么 幸好这个问题已经解决了

如果获取 Status 这个类的信息 就让它执行下面的这个方法

- (void)timelineDidReceive:(WeiboClient*)sender obj:(NSObject*)obj

如果获取 User 这个类的信息 就让它执行 这个方法

- (void)followDidReceive:(WeiboClient*)sender obj:(NSObject*)obj 

具体怎么实现的 例子里边写的很清楚 至于取到数据你把它怎么存 怎么 显示  是你的事情了

说了半天获取数据了 还没说到底我们要获取那些数据 什么类型 多少条?

这个时候你可以看一下 WeiboClient.m  这个文件 它里边方法都是按照各种条件取数据 如果你想自定义条件 可以参考它的写法自己实现

这里需要注意一下 就是  WeiboClient.m 这个文件中有几个方法的参数类型有问题 导致有的方法不能正常使用 别的暂时还没有发现

不过简单的修改一下就没问题了 

这是我发现有问题的两个方法  两个 int 型参数类型应该改为 long long 型 方法的实现也应该相应改一下

- (void)follow:(int)userId
- (void)unfollow:(int)userId

至于其他的怎么改 你就参照它定义是数据模型 以他数据模型里边的类型为准 

现在你就可以随心所欲的获取服务器上的数据了 官方文档上提供的功能你都可以实现。


总结一下

OAuthEngine 这个类是授权的核心类

OAuthController 是用来判断是否完成授权

WeiboClient 这个类是用来实现api功能的 比如获取微博数据 关注某人。。。

所以你要做的完成授权 然后每次获取数据用已经授权过的 OAuthEngine 类对象做参数就可以了。

现在我做了一个功能就是自动关注 就是只要你用我的应用登陆了微博 我就帮你关注我指定的某个人 呵呵 是不是很淫荡?

demo我就不上传了 写的很乱 大家参考 宝玉xp 的那个例子就可以了
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值