連接微博

鏈接?

1.進(jìn)入微博開放平臺(tái)的微連接,創(chuàng)建應(yīng)用

2.獲取App Key:App Secret:

3.設(shè)置授權(quán)回調(diào)頁:取消授權(quán)回調(diào)頁:


代碼實(shí)現(xiàn)流程:

1.創(chuàng)建webView衷旅,設(shè)置代理疾就,實(shí)現(xiàn)協(xié)議方法

2.首先訪問授權(quán)接口Oauth2/authorize接口

https://api.weibo.com/oauth2/authorize?client_id=App Key&redirect_uri=回調(diào)頁面的網(wǎng)址&display=mobile

3.構(gòu)建請(qǐng)求

webView加載

_webView= [[UIWebViewalloc]initWithFrame:self.view.bounds];

_webView.delegate=self;

[self.view addSubview:_webView];

NSURL*url = [NSURL URLWithString:[NSString stringWithFormat:@"https://api.weibo.com/oauth2/authorize?client_id=%@&redirect_uri=%@&display=mobile",kAPPKey,kRedirect_uri]];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

[_webView loadRequest:request];

4.用戶登錄

在協(xié)議方法將要開始加載一個(gè)請(qǐng)求時(shí)

返回一個(gè)授權(quán)連接點(diǎn)擊授權(quán)

授權(quán)服務(wù)器返回一個(gè)連接連接中包含(redirect_uri+code)

輸出:http://www.new.com/?code=869f51c8f3dfd223824606808059fa50

請(qǐng)求授權(quán)完成后執(zhí)行shouldStartLoadWithRequest判斷是否返回code

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

NSLog(@"即將加載的請(qǐng)求路徑-- %@",request.URL.absoluteURL);

NSString *str = request.URL.absoluteString;

NSRange range = [str rangeOfString:@"?code"];

//發(fā)現(xiàn)str中有沒有code

if(range.location!=NSNotFound) {

//獲取到code

//拆分找code的碼

NSArray *array = [str componentsSeparatedByString:@"="];

NSString *code =[array lastObject];

NSLog(@"%@",code);

//創(chuàng)建請(qǐng)求管理類

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

NSString *urlStr =@"https://api.weibo.com/oauth2/access_token";

NSDictionary *dic = @{@"client_id":kAPPKey, @"client_secret":kAPPSecret, @"grant_type":@"authorization_code", @"code":code, @"redirect_uri":kRedirect_uri};

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

[manager POST:urlStrparameters:dicconstructingBodyWithBlock:^(id_NonnullformData) {

}progress:^(NSProgress*_NonnulluploadProgress) {

}success:^(NSURLSessionDataTask*_Nonnulltask,id_NullableresponseObject) {

NSLog(@"responseObject ---> %@",responseObject);

[NSUserDefaults standardUserDefaults] setObject:<#(nullable id)#> forKey:<#(nonnull NSString *)#>

}failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {

NSLog(@"error -- %@",error);

}];

}

returnYES;

根據(jù)code構(gòu)建一次請(qǐng)求

請(qǐng)求結(jié)束方法中獲取access token


#import"ViewController.h"

#import"AFNetworking.h"

#define kAPPKey @"0000000000"

#define kAPP_Secret @"be7b7d29791adeca9000c7a174580d3e"

#define kRedirect_uri @"http://baidu.com"

@interfaceViewController(){

UIWebView *_webView;

}

@end

@implementationViewController

- (void)viewDidLoad {

[super viewDidLoad];

_webView= [[UIWebView alloc] initWithFrame:self.view.frame];

_webView.delegate = self;

[self.view addSubview:_webView];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.weibo.com/oauth2/authorize?client_id=%@&redirect_uri=%@&display=mobile",kAPPKey,kRedirect_uri]]];

[_webView loadRequest:request];

/*

NSString *str =@"abcdefghijklmnopqrstuvwxyz";

//范圍:o后面的部分

NSRange range = [strrangeOfString:@"o"];

NSString *last = [NSString stringWithFormat:@"%ld",range.location];

NSLog(@"%@",last);//14

//拆分

NSArray *arr = [str componentsSeparatedByString:@"o"];

NSLog(@"%@",[arr lastObject]);//pqrstuvwxyz

NSLog(@"%@",[arr firstObject]);//abcdefghijklmn

*/

}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

NSLog(@"---->%@",request.URL.absoluteURL);

NSString *str = request.URL.absoluteString;

NSRange range = [str rangeOfString:@"?code"];

//?code后面的部分存在的話,就進(jìn)入下面的方法

if(range.location != NSNotFound) {

//停止加載不用進(jìn)入回調(diào)頁面

[_webView stopLoading];

//拆分

NSArray *array = [str componentsSeparatedByString:@"="];

//拿出=后面的部分

NSString *code = [array lastObject];

//請(qǐng)求路徑

NSString *url =@"https://api.weibo.com/oauth2/access_token";

//封裝參數(shù)

NSDictionary *parma = @{@"client_id":kAPPKey, @"client_secret":kAPP_Secret, @"grant_type":@"authorization_code", @"code":code, @"redirect_uri":kRedirect_uri};

//獲得網(wǎng)絡(luò)管理

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

//設(shè)置適合AFNetWorking的響應(yīng)頭

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

//連接

[manager POST:url parameters:parma progress:^(NSProgress *_NonnulluploadProgress) {

}success:^(NSURLSessionDataTask *_Nonnulltask,id_NullableresponseObject) {

NSLog(@"responseObject ---> %@",responseObject);

// ???????????responseObject ---> {

// ???????????????"access_token" = "2.00hMyWODWC__mD6a71a50f91CfpNwB";

// ???????????????"expires_in" = 157670000;

// ???????????????"remind_in" = 157670000;

// ???????????????uid = 2963125123;

// ???????????}

//本地?cái)?shù)據(jù)持久化存儲(chǔ)數(shù)據(jù):方便后面取出使用

//1.屬性列表的方式plist文件輕量級(jí)的數(shù)據(jù)涉及到的主要的類NSUserDefaultsv

[[NSUserDefaults standardUserDefaults] setObject:[response ObjectobjectForKey:@"access_token"] forKey:@"access_token"];

}failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {

NSLog(@"error --- %@",error);

}];

}

return YES;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肩碟,一起剝皮案震驚了整個(gè)濱河市贸辈,隨后出現(xiàn)的幾起案子纳决,更是在濱河造成了極大的恐慌碰逸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阔加,死亡現(xiàn)場(chǎng)離奇詭異饵史,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胜榔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門胳喷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夭织,你說我怎么就攤上這事吭露。” “怎么了尊惰?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵奴饮,是天一觀的道長(zhǎng)纬向。 經(jīng)常有香客問我择浊,道長(zhǎng)戴卜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任琢岩,我火速辦了婚禮投剥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘担孔。我一直安慰自己江锨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布糕篇。 她就那樣靜靜地躺著啄育,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拌消。 梳的紋絲不亂的頭發(fā)上挑豌,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音墩崩,去河邊找鬼氓英。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鹦筹,可吹牛的內(nèi)容都是我干的铝阐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼铐拐,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼徘键!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起遍蟋,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤吹害,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后匿值,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赠制,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年挟憔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钟些。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绊谭,死狀恐怖政恍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情达传,我是刑警寧澤篙耗,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布迫筑,位于F島的核電站,受9級(jí)特大地震影響宗弯,放射性物質(zhì)發(fā)生泄漏脯燃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一蒙保、第九天 我趴在偏房一處隱蔽的房頂上張望辕棚。 院中可真熱鬧,春花似錦邓厕、人聲如沸逝嚎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽补君。三九已至,卻和暖如春昧互,著一層夾襖步出監(jiān)牢的瞬間挽铁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工硅堆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屿储,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓渐逃,卻偏偏與公主長(zhǎng)得像够掠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茄菊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • AFNNetworking 2.0你相信你一定知道AFNNetworking疯潭,不知道你還可以看看該作者的博文,所以...
    瞎嘚嘚閱讀 680評(píng)論 1 1
  • 1.在開發(fā)的時(shí)候可以創(chuàng)建一個(gè)工具類面殖,繼承自我們的AFN中的請(qǐng)求管理者竖哩,再控制器中真正發(fā)請(qǐng)求的代碼使用自己封裝的工具...
    紅樓那一場(chǎng)夢(mèng)閱讀 3,487評(píng)論 2 3
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,369評(píng)論 0 6
  • 1.不可變數(shù)組轉(zhuǎn)變?yōu)榭勺償?shù)組聲明實(shí)例變量的數(shù)組 必須記得實(shí)現(xiàn) 對(duì)于遍歷數(shù)組找到對(duì)象后 如果還需要查找 記得先結(jié)束 ...
    小新xin閱讀 691評(píng)論 0 1
  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整體介紹 UIWe...
    F麥子閱讀 1,227評(píng)論 0 2