ios-新浪微博开发-17(授权3)
来源:互联网 发布:怎么用vc6.0编写c语言 编辑:程序博客网 时间:2024/05/09 14:02
#import "QHOAuthViewController.h"#import "AFNetworking.h"@interface QHOAuthViewController()<UIWebViewDelegate>@end@implementation QHOAuthViewController- (void)viewDidLoad { [super viewDidLoad]; //1.创建webView UIWebView *webView = [[UIWebView alloc]init]; webView.frame = self.view.bounds; [self.view addSubview:webView]; webView.delegate = self; //2.用webView加载登录页面(新浪提供的) 回调地址不是空!!!默认值是http:// //请求地址:https://api.weibo.com/oauth2/authorize //请求参数 client_id=438168078&redirect_uri=http:// NSURL *url = [NSURL URLWithString:@"https://api.weibo.com/oauth2/authorize?client_id=438168078&redirect_uri=http://www.baidu.com"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request]; NSLog(@"-----viewDidLoad"); //invalid_request 参数搞错了 或者没有参数 // Do any additional setup after loading the view.}#pragma mark -webView代理方法- (void)webViewDidFinishLoad:(UIWebView *)webView{ NSLog(@"-----ViewDidFinishLoad");}- (void)webViewDidStartLoad:(UIWebView *)webView{ NSLog(@"webViewDidStartLoad");}//可以拦截所有的URL- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ //1.获得url NSString *url = request.URL.absoluteString; //2.判断是否为回调地址 NSRange range = [url rangeOfString:@"code="]; if (range.length != 0) {//是回调地址 //截取code=后面的参数值 NSInteger fromIndex = range.location + range.length; NSString *code = [url substringFromIndex:fromIndex]; //code 授权成功的标记 //利用code 换取一个accessToken [self accessTokenWithCode:code]; NSLog(@"%@ %@",code,url); } NSLog(@"shouldStartLoadWithRequest -- %@",request.URL.absoluteString); return YES;}/** * 利用code(授权成功后的请求标记 授权成功后的request token)换取一个accessToken * * @param code 授权成功后的请求标记 */- (void)accessTokenWithCode:(NSString *)code{ /** * client_id true string 申请应用时分配的AppKey。 client_secret true string 申请应用时分配的AppSecret。 grant_type true string 请求的类型,填写authorization_code grant_type为authorization_code时 必选 类型及范围 说明 code true string 调用authorize获得的code值。 redirect_uri true string 回调地址,需需与注册应用里的回调地址一致。 * * */ //1.请求管理者 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; // mgr.responseSerializer = [AFHTTPResponseSerializer serializer]; //2拼接请求参数 NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"client_id"] = @"438168078"; params[@"client_secret"] = @"983ddac0a0dce9ee09161e5f5e04bfd7"; params[@"grant_type"] = @"authorization_code"; params[@"redirect_uri"] = @"http://www.baidu.com"; params[@"code"] = code; //3.发送请求 [mgr POST:@"https://api.weibo.com/oauth2/access_token" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { QHLog(@"请求成功-%@",responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { QHLog(@"请求失败-%@",error); }];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller.}*/@end
0 0
- ios-新浪微博开发-17(授权3)
- ios-新浪微博开发-16(授权)
- IOS-新浪微博授权
- IOS-新浪微博授权
- IOS新浪微博开发--分享、授权登录
- IOS新浪微博开发--分享、授权登录
- 新浪微博开发OAuth授权注意事项
- ios-新浪微博开发-18-(授权存储账号信息)用归档实现
- iOS开发集成友盟,新浪微博登录授权失败,responseCode等于5051
- 新浪微博授权
- 新浪微博授权
- iOS 新浪微博分享授权失败的问题
- ios 新浪微博Oauth授权失败 (error:redirect_rul_mismatch)
- 新浪微博iOS平台SSO授权认证原理分析
- 新浪微博iOS平台SSO授权认证原理分析
- 新浪微博iOS SDK 授权和获取用户信息
- iOS 新浪微博分享授权失败的问题
- 新浪微博开发十(微博授权)
- C# datagrid加载不了数据
- On the Energy (In)efficiency of Hadoop Cluster(总结)
- numbers of islands
- 全面剖析Redis Cluster原理和应用
- 2015年9月之 远方之远
- ios-新浪微博开发-17(授权3)
- UITableViewController
- 大家有没有遇到这个问题 ,该怎么去解决呢
- [推荐] SQLite可视化管理工具汇总
- UI课程 08 导航控制器 UINavigationController 、容器控制器
- Maximum Product Subarray
- 求1000!结果末尾有多少个0
- sqlite特性 只能添加字段 不能修改字段 的解决方法 和php sqlite的管理工具 sqlbuddy
- 增加Docker cgroup命令