说明:微博开放接口的调用,如发微博、关注等,都是需要获取用户身份认证的。目前微博开放平台用户身份鉴权主要采用的是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*str=@"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 *dic=@{@"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共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

IOS开发之新浪微博OAuth2相关推荐

  1. IOS开发之——新浪微博(42)

    一 概述 本文介绍实现新浪微博的基本页面效果,代码结果如下: Status:模型数据 StatusFrame:Cell中每个组件要显示的内容和位置 StatusCell:自定义Cell ViewCon ...

  2. IOS开发——新浪微博认证失败处理

    IOS开发--新浪微博认证失败处理 认证失败错误提示: 请求返回错误( error.errorDescription):Insufficient app permissions! 1,检查 分享集成部 ...

  3. ios小项目——新浪微博客户端总结

    2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...

  4. iOS开发系列--UITableView全面解析

    iOS开发系列--UITableView全面解析 2014-08-23 23:20 by KenshinCui, 2202 阅读, 18 评论, 收藏,  编辑 --UIKit之UITableView ...

  5. (0098)iOS开发之应用间的分享系列(3)

    (0096)iOS开发之应用间的分享系列(1) (0097)iOS开发之应用间的分享系列(2) 前两篇都是讲的分别是 将自己的应用添加到系统的分享面板 将图片通过分享面板分享到自己的应用中并显示. 这 ...

  6. iOS开发工具——网络封包分析工具Charles

    iOS开发工具--网络封包分析工具Charles 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Char ...

  7. iOS开发系列--网络开发(转)

    iOS开发系列--网络开发 2014-10-22 08:34 by KenshinCui, 66365 阅读, 56 评论, 收藏, 编辑 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微 ...

  8. iOS开发--完整项目

    完整项目 Phonetic Swift 写的一个 iOS 版的 Phonetic Contacts,功能很多,其中昵称功能非常实用,已在 GitHub 开源并上架 App Store v2ex – v ...

  9. iOS开发一路走来看到,好奇,好玩,学习的知识点记录

    AutoreleasePool http://blog.sunnyxx.com/2014/10/15/behind-autorelease/ http://blog.leichunfeng.com/b ...

最新文章

  1. Verilog设计实例(6)基于Verilog的各种移位寄存器实现
  2. 001_FastDFS介绍
  3. 【机器学习】特征降维-主成分分析
  4. 如何设计企业内部的数据平台?
  5. 个人成长:2021年终记
  6. 中高级JavaScript易错面试题
  7. 面试官:说一下List排序方法
  8. TensorFlow训练单特征和多特征的线性回归
  9. 9:01 2009-7-20
  10. 重庆最狠的火锅,都是用来泡脚的
  11. jquery 语法基础
  12. 王者调整期选股技术之喇叭花开
  13. 1.空间中直线交点坐标问题,2.已知球面三点求球心问题以及Matlab实现
  14. rpg制作大师_在线RPG大师班
  15. 浏览器刷新页面导致vuex数据丢失问题如何解决?
  16. 知识图谱可视化工具选型
  17. 【计算机视觉40例】案例14:指纹识别
  18. 区块链MMO游戏该如何设计Token经济?
  19. html--P11-P20
  20. yesry 通过桥接器,Java调用任何API或DLL

热门文章

  1. java实现黑图、透明图检测
  2. python制作签名软件
  3. 测试服务器的udping值
  4. 简单递归——整数划分
  5. 电脑常用 知识,电脑上的disabled是什么意思呢
  6. 绘声绘影X8问题修复
  7. win 10.0.17134.915 版本无法更新处理方法
  8. Unity 在web上材质显示正常,但是unity端材质显示为紫色
  9. 转:胡赛雄:别让形式管理蒙住了双眼
  10. tomcat9怎样卸载干净_怎样把360卸载干净