IOS开发之新浪微博OAuth2

  说明:微博开放接口的调用,如发微博、关注等,都是需要获取用户身份认证的。目前微博开放平台用户身份鉴权主要采用的是OAuth2.0。为了方便开发者开发、测试自己的应用。

  OAuth2.0较1.0相比,整个授权验证流程更简单更安全,也是未来最主要的用户身份验证和授权方式。

步骤一:创建应用

下面我以本公司测试账号为例,创建应用步骤可以参考新浪的官方API 地址:http://open.weibo.com应用创建好停留在开发阶段即可使用,本例的应用信息如下图

步骤二:获取token号码

  通过webView加载链接其中client_id为应用的app Key, redirect_uri的值为公司跳转链接这里我以本公司链接为例子

UIWebView  * web=[[UIWebView alloc] init]; web.frame=self.view.bounds;
NSString*[email protected]"https://api.weibo.com/oauth2/authorize?client_id=3272733387&redirect_uri=http://www.21-sun.com";

    NSURL * url=[NSURL URLWithString:str];
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    [web loadRequest:request];
    [self.view addSubview:web];
web.delegate=self;

  效果界面如下,登录完成授权:

  在返回的链接中后面会拼有参数code,此code我们需要备用,如图所示,我们可以通过webView的代理来截取返回链接

#pragma mark - 允许代理加载请求
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSString * str=request.URL.absoluteString;
if([str containsString:@"http://www.21-sun.com/?code="]){
     NSInteger index=[str rangeOfString:@"="].location;
        NSString * code=[str substringFromIndex:index+1];
        return NO;
 }
return YES;
}

  请求access_token,如图所示,采用下面链接请求

//client_id true     string  申请应用时分配的AppKey。

//client_secret    true     string  申请应用时分配的AppSecret。

//grant_type  true     string  请求的类型,填写authorization_code

//code true     string   上面获得的code值。

//redirect_uri true     string  回调地址,需需与注册应用里的回调地址一致。

  代码如下

- (void)_getToken:(NSString *) code{

    NSDictionary *[email protected]{@"client_id":@"3272733387",@"client_secret":@"10003f9922c9d0e0fefb03500c8d4dbc",@"grant_type":@"authorization_code",@"code":data,@"redirect_uri":@"http://www.21-sun.com"};

   AFHTTPRequestOperationManager * manager=[AFHTTPRequestOperationManager manager];  manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@"text/plain"];

[manager  POST:@"https://api.weibo.com/oauth2/access_token" parameters:dic success:^(AFHTTPRequestOperation *operation, NSDictionary * responseObject) {

       NSString * token=responseObject[@"access_token"];    

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"请求失败");

}];

}

此时用我们获取的access_token码就可以做很多事情了。

作者:杰瑞教育

出处:http://blog.csdn.net/jerehedu

本文版权归烟台杰瑞教育科技有限公司和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

时间: 2024-11-05 15:00:54

IOS开发之新浪微博OAuth2的相关文章

iOS开发之新浪微博山寨版代码优化

之前发表过一篇博客“IOS开发之新浪围脖”,在编写代码的时候太偏重功能的实现了,写完基本功能后看着代码有些别扭,特别是用到的四种cell的类,重复代码有点多,所以今天花点时间把代码重构一下.为了减少代码的重复编写把cell中相同的部分抽象成父类,然后继承.不过也是结合着storyboard做的.在优化时转发的View和评论的View相似,于是就做了个重用.在原来的代码上就把cell的代码进行了重写,所以本篇作为补充,关键代码还得看之前的博客. 1.第一种cell,只有微博内容,没有图片,效果如下

iOS开发>学无止境 - 新浪微博iOS底部功能按钮简单实现

以上效果主要涉及点 九宫格布局 形变动画 UIView动画 首先,考虑图片的效果,初步采用使用modal控制器来实现,但是考虑到modal最后会移除modal他的控制器的view,所以,还是使用自定义UIView来实现这个功能. 做这种功能,首先实现的是按钮出现位置,后面在实现动画就容易了. 首先进行九宫格布局,创建模型传入指定数量的按钮,并且使用形变,将所有的按钮移动到看不见的坐标 点击底部按钮后,设置形变至屏幕区域(这里直接设置成CGAffineTransformIdentity) 对功能按

我的iOS开发系列博文

之前目录性的总结了发表过的关于OC方面的文章,今天在目录性的总结一下有关iOS开发的文章.走过路过不要错过哦,今天的博文也全都是干货.写技术博客与大家交流一下思想也是不错的. 下面是我的技术博客中有关iOS开发的内容,有初级部分也有高级部分,有旧的东西,也有新的东西.咸蛋就先扯到这儿,正文走起: 我的iOS系列博文如下:   01.iOS开发之简单音频播放器 02.iOS开发之视图和视图控制器 03.iOS开发之绝对布局和相对布局(屏幕适配) 04.iOS开发之自动布局显示网络请求内容 05.i

iOS开发之山寨版新浪微博小结

在之前的博客IOS开发之新浪围脖中获取微博的内容是使用我自己的access_token来请求的数据,那么如何让其他用户也能登陆并获取自己的微博内容呢?接下来就是OAuth和SSO出场的时候啦.OAuth的全称为Open Authorization 开发授权,SSO--单点登陆(Single Sign On).至于其原理是什么,更具体的介绍网上的资料是一抓一大把,在这就不做过多的原理性的概述.当然啦,OAuth和SSO在Web和其他手机终端上应用还是蛮多的,所有这方面的资料也是多的很. 简单的说就

在地下室开发IOS版的新浪微博

我开发的新浪微博sina,我为自己代言! IOS开发的sina客户端 为了学习IOS,我辞职了,一个月的时间,我从C语言开始学起,早晨8点,到晚上12点,几乎每天都是这样,日复一日. 总是忘记了去吃中午饭,记得那个时候,我住在北京的一个地下室里,每天看不到阳光,其实也好,刚好是三伏天,出门去挺热的,在家学习也不错,嘿嘿!每天中午,总是被一个问题磕磕绊绊,总是忘记去吃中午饭,每当我能解决到一个问题,心中都特别的兴奋!这时候才想到,我原来有点饿了!接着就去到外面找饭吃,每次都是去一个地下餐馆,简简单

iOS开发项目篇—17OAuth授权过程

iOS开发项目篇—17OAuth授权过程 一.网页演示 1.打开开放平台的地址 2.创建应用 3.填写个人开发者信息 4.创建新的应用 5.查看微博提供的api接口 6.在这里使用的是OAuth2 7.接口的完整说明 说明:提供的URL就是登陆界面 8.创建后的应用信息 9.不能直接访问提供的URL,还需要传入必要的参数 传入必要的参数: client_id true string 申请应用时分配的AppKey // 得知道给哪个应用授权 redirect_uri true string 授权回

iOS开发项目-02添加子控制器以及项目分层

iOS开发项目-02添加子控制器以及项目分层 一.添加子控制器 1.设置根控制器(自定义) 说明:分析新浪微博应用,观察其整体建构层次.而系统的控制器不能满足项目开发的需求,这里把项目中原有的控制器删除. 自己定义一个TabBarViewController类.让这个类作为window窗口的根控制器. YYAppDelegate.m文件代码: 1 #import "YYAppDelegate.h" 2 #import "YYTabBarViewController.h&quo

iOS开发-二维码扫描和应用跳转

iOS开发-二维码扫描和应用跳转 序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦,出错也不方便调试.在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方框架.本文讲解如何使用原生框架实现二维码扫描功能,并且进行扫描后的项目跳转.ps:本期的源代码会在文章结尾给出链接 扫描相关类 二维码扫描需要获取摄像头并读取

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,