新浪微博Oauth API调用方法

//
//  OauthViewController.m
//  WPWEIBO
//
//  Created by apple on 15/5/12.
//  Copyright (c) 2015年 apple. All rights reserved.
//
#import "OauthViewController.h"
@interface OauthViewController () <UIWebViewDelegate,NSURLConnectionDataDelegate>
@end
@implementation OauthViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSString *urlstr = @"https://api.weibo.com/oauth2/authorize?client_id=4293602466&redirect_uri=http://www.baidu.com";
    NSURL *url = [NSURL URLWithString:urlstr];
    
    UIWebView *uiw1 = [[UIWebView alloc] init];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [uiw1 loadRequest:req ];
    uiw1.frame = self.view.bounds;
    [self.view addSubview:uiw1];
    uiw1.delegate = self;
}
- (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.
}
*/
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    
    
    
    NSString *url = request.URL.absoluteString;
//    NSLog(@"%@",url);
    NSRange range = [url rangeOfString:@"code="];
    NSLog(@"%@",NSStringFromRange(range));
    if (range.length != 0)
    {
        NSString *code = [url substringFromIndex:(int)(range.location + range.length)];
        [self getToken:code];
    }
    return YES;
}
- (void)getToken:(NSString *)code
{
    /*
     https://api.weibo.com/oauth2/access_token
     HTTP请求方式
     POST
     请求参数
     必选类型及范围说明
     client_id truestring 申请应用时分配的AppKey。
     client_secret truestring 申请应用时分配的AppSecret。
     grant_type truestring 请求的类型,填写authorization_code
     grant_type为authorization_code时
     必选类型及范围说明
     code truestring 调用authorize获得的code值。
     redirect_uri truestring 回调地址,需需与注册应用里的回调地址一致。
     */
    
    NSURL *tokenurl = [NSURL URLWithString:@"https://api.weibo.com/oauth2/access_token"];
    NSMutableURLRequest *tokenreq = [[NSMutableURLRequest alloc] initWithURL:tokenurl];
    
    tokenreq.HTTPMethod = @"POST";
    NSString *htpbody = [NSStringstringWithFormat:@"client_id=4293602466&client_secret=4a959234e47bb0fe313b986e610d2891&grant_type=authorization_code&code=%@&redirect_uri=http://www.baidu.com",code];
    tokenreq.HTTPBody = [htpbody dataUsingEncoding:NSUTF8StringEncoding];
    NSURLConnection *urc = [[NSURLConnection alloc] initWithRequest:tokenreq delegate:self];
    [urc start];
    
    
    
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"%@",response);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSDictionary *jdic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
    NSString *access_token = jdic[@"access_token"];
    
    NSLog(@"%@",access_token);
}
@end
时间: 2024-10-13 11:26:38

新浪微博Oauth API调用方法的相关文章

Facebook Oauth2.0 API调用方法

这些天搞了下Facebook API的东东,在官方网站下弄了一些接口,下面简单的把facebook的调用流程以及常用接口书序一下 :-)  当然在使用facebook api之前要有facebook账号以及在facebook上注册一个自己的应用  1.登录鉴权 https://graph.facebook.com/oauth/authorize?client_id=8888888888888&redirect_uri=http://www.mywebsite.com&scope=user_

saltstack一些常用模块和api调用方法

研究可执行模块的时候,发现很多自带的模块已经很完善,可以帮助我们完成日常工作了,这里写入自己的记录操作: 1.使用salt.clien调用接口操作举例: >>> import salt.client>>> client = salt.client.LocalClient()>>> ret = client.cmd('*','test.ping')>>> ret{'monitor': True} 我们看到调用了LocalClient()

html5 自带全屏API调用方法

function FullScreen(){ var el = $('html')[0];//要全屏的元素,如果要全页面全屏,建议使用html节点而不是body节点 var isFullscreen=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen; if(!isFullscreen){//进入全屏,多重短路表达式 (el.requestFullscreen&&el.requestFullscr

salt api调用iptables模块

iptables模块基本函数方法:salt.modules.iptables.append(table=u'filter', chain=None, rule=None, family=u'ipv4')salt.modules.iptables.insert(table=u'filter', chain=None, position=None, rule=None, family=u'ipv4')salt.modules.iptables.delete(table, chain=None, po

PHP实现人人OAuth登录和API调用

人人开放平台给出的PHP SDK,个人感觉写的不怎么样,而且在我的电脑上运行不出来,总是113错误,查文档竟然还没有这个错误码,于是只好自己按照官方给出的文档,用PHP自己实现了一下.代码如下文,没有作封装,只是走了一下流程.如果是仅仅用于人人连接这样的登录验证和简单的API调用,也不是很有必要封装.作为使用人人API的一个PHP示范吧.自己写代码的过程中也参考了官网的SDK代码和DEMO代码. 说明: 1.使用了HttpClient类发起Get和Post请求,文件下载地址http://scri

快递api网接口快递调用方法

----------------实体类 [DataContract] public class SyncResponseEntity { public SyncResponseEntity() { } /// <summary> /// 需要查询的快递代号 /// </summary> [DataMember(Order = 0, Name = "id")] public string ID { get; set; } /// <summary> /

在ASP.NET MVC5应用程序中快速接入QQ和新浪微博OAuth

这篇文章演示如何在你的ASP.NET MVC5应用程序中支持用户使用腾讯QQ和新浪微博的open authentication. 起步 安装Visual studio 2013 higher或者Visual studio express 2013 for web就不再赘述了,点击这里下载. 创建应用程序 打开vs,在Template中选择C#->asp.net web application ,命名为OauthDemo,并点击OK 在弹出窗口中选择MVC template,并且选择"Cha

百度语音识别REST API使用方法(含JAVA代码)——不需要集成SDK的方法

上一篇文章http://blog.csdn.net/zpf8861/article/details/32322089已经介绍了百度语音识别REST API的使用步骤和功能介绍,这篇文章主要通过一个实例代码来展示如何使用该API. 本文代码为JAVA版,可以用于Android应用开发中,下面介绍其中重要的代码. 获得Token 其中apiKey和secretKey是从百度开放平台获得的,获得方法参看上一篇文章. private static void getToken() throws Excep

OAuth客户端调用

public class OAuthClientTest { private HttpClient _httpClient; public OAuthClientTest() { _httpClient = new HttpClient(); _httpClient.BaseAddress = new Uri("http://openapi.cnblogs.com"); } [Fact] public async Task Get_Accesss_Token_By_Resource_O