亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 系統(tǒng) > iOS > 正文

iOS開(kāi)發(fā)教程之微博OAuth授權(quán)_取得用戶授權(quán)的accessToken

2019-10-21 18:57:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
本文是IOS開(kāi)發(fā)教程系列文章的第二篇,講訴的內(nèi)容是如何使用微博OAuth授權(quán),并付源碼,然后詳細(xì)講解了取得用戶授權(quán)的accessToken,希望對(duì)大家有所幫助
 

最終效果圖:

iOS開(kāi)發(fā)教程之微博OAuth授權(quán)_取得用戶授權(quán)的accessToken

OauthViewController.m

//// OauthViewController.m// 20_帥哥no微博//// Created by beyond on 14-8-5.// Copyright (c) 2014年 com.beyond. All rights reserved.// 授權(quán)控制器,僅運(yùn)行一次,取得了當(dāng)前用戶的access_token和uid之后,存檔,切換窗口的主控制器#import "OauthViewController.h"@interface OauthViewController ()<UIWebViewDelegate>{  // 成員變量記住,不同方法中要用到  UIWebView *_webView;}@end@implementation OauthViewController-(void)loadView{  // 直接讓W(xué)ebView成為控制器的view,避免再次添加  _webView = [[UIWebView alloc]init];  self.view = _webView;}- (void)viewDidLoad{  [super viewDidLoad];    // 設(shè)置代理為當(dāng)前控制器,以便監(jiān)聽(tīng)webView的開(kāi)始加載 和結(jié)束 加載  _webView.delegate = self;    // 申請(qǐng)認(rèn)證的地址  NSString *oauthURL = [NSString stringWithFormat:@"https://api.weibo.com/oauth2/authorize?client_id=%@&response_type=code&redirect_uri=%@",kAppKey,kRedirectURL];    // 調(diào)用分類的方法,加載申請(qǐng)認(rèn)證的網(wǎng)址  [_webView loadURLString:oauthURL];}#pragma mark - 代理 方法// 開(kāi)始加載- (void)webViewDidStartLoad:(UIWebView *)webView{  log(@"真的開(kāi)始加載--%@",webView.request.URL);  // 一開(kāi)始加載就,顯示進(jìn)度條  MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:webView animated:YES];  hud.labelText = @"頁(yè)面加載中...";}// 是否開(kāi)始加載某個(gè)頁(yè)面- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{  log(@"能否加載--%@",webView.request.URL);  return YES;}// 頁(yè)面加載完成- (void)webViewDidFinishLoad:(UIWebView *)webView{  log(@"加載完畢--%@",webView.request.URL);  // 一旦加載完畢,就隱藏進(jìn)度條  [MBProgressHUD hideAllHUDsForView:webView animated:YES];      // 用戶同意授權(quán)之后,返回的URL包含授權(quán)的request_code,形如: http://www.abc.com/?code=888888888888  // 返回了用戶授權(quán)的request_code的頁(yè)面之后,需要截取code,然后繼續(xù)拼接url,發(fā)起第3次請(qǐng)求(這次必須以POST方式),最終返回需要的access_token    NSString *reDirectURLContainsCode = _webView.request.URL.absoluteString;  // 分類方法,從左邊標(biāo)記字串的最后面開(kāi)始,截取剩下的字符串  NSString *code = [reDirectURLContainsCode subStrFromLeftFlagStr:@"?code="];  //如果 不是返回code的url,不做任何事情  if (code == nil) return;    // 現(xiàn)在準(zhǔn)備發(fā)起最后一次請(qǐng)求,拼接第3次請(qǐng)求的需要的URL,本次請(qǐng)求返回的東東,才會(huì)是最重要的用戶的accessToken,也包含了用戶的uid  NSString *accessTokenRequestURLStr = [NSString stringWithFormat:@"https://api.weibo.com/oauth2/access_token?client_id=%@&client_secret=%@&grant_type=authorization_code&redirect_uri=%@&code=%@",kAppKey,kAppSecret,kRedirectURL,code];      // 1,創(chuàng)建URL  NSURL *accessTokenRequestURL = [NSURL URLWithString:accessTokenRequestURLStr];  // 2,創(chuàng)建post請(qǐng)求  NSMutableURLRequest *mutRequest = [[NSMutableURLRequest alloc]initWithURL:accessTokenRequestURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];  //設(shè)置請(qǐng)求方式為POST,默認(rèn)為GET  [mutRequest setHTTPMethod:@"POST"];    // 3,連接服務(wù)器,并接收返回的數(shù)據(jù)  NSData *receivedData = [NSURLConnection sendSynchronousRequest:mutRequest returningResponse:nil error:nil];  // 將服務(wù)器返回的數(shù)據(jù)轉(zhuǎn)成字串(實(shí)質(zhì)是JSON數(shù)據(jù))  NSString *responseStr = [[NSString alloc]initWithData:receivedData encoding:NSUTF8StringEncoding];  log(@"Response json is :%@",responseStr);      // 4,從responseStr中(實(shí)質(zhì)是JSON數(shù)據(jù))獲取到access_token  // 將(JSON數(shù)據(jù))轉(zhuǎn)成字典先  NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil];    // 通過(guò)鍵,取到access_token  NSString *access_token = [dictionary objectForKey:@"access_token"];  log(@"access token is:%@",access_token);  // 通過(guò)鍵,取到用戶的uid  NSString *uid = [dictionary objectForKey:@"uid"];  log(@"uid is:%@",uid);    // 授權(quán)成功,切換根控制器到主控制器  UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"授權(quán)成功" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"確定" otherButtonTitles: nil];  [actionSheet showInView:self.view.window];}@end

 

補(bǔ)充說(shuō)明:

第0步,

先注冊(cè)成為開(kāi)發(fā)者,驗(yàn)證郵箱之后,就可以創(chuàng)建移動(dòng)應(yīng)用,

記下系統(tǒng)自動(dòng)為該應(yīng)用生成的APPKey和APPSecret,

并在應(yīng)用信息的高級(jí)信息中,設(shè)置授權(quán)完成的回調(diào)頁(yè)面的地址Redirect_URI

由于這里是手機(jī)客戶端,而不是web應(yīng)用,

因此創(chuàng)建應(yīng)用的時(shí)候,Redirect_URI可以隨便寫,

但必須全局都使用同一個(gè)地址Redirect_URI

iOS開(kāi)發(fā)教程之微博OAuth授權(quán)_取得用戶授權(quán)的accessToken
 

iOS開(kāi)發(fā)教程之微博OAuth授權(quán)_取得用戶授權(quán)的accessToken

第1步,

申請(qǐng)未授權(quán)的request_code,

實(shí)質(zhì)就是來(lái)到微博的登錄頁(yè)面,也就是_webView第一個(gè)加載的url

地址格式如下:

https://api.weibo.com/oauth2/authorize?client_id=APPKEY&response_type=code&redirect_uri=https://api.weibo.com/oauth2/default.html

APPKEY就是創(chuàng)建應(yīng)用時(shí),系統(tǒng)自動(dòng)生成的唯一的應(yīng)用ID

redirect_uri,必需和創(chuàng)建應(yīng)用時(shí)的自己填寫的一致

第2步,

用戶輸入了帳號(hào)和密碼之后,點(diǎn)擊登錄,

頁(yè)面會(huì)自動(dòng)轉(zhuǎn)到授權(quán)頁(yè)面,

用戶如果點(diǎn)擊授權(quán)按鈕,此時(shí),頁(yè)面又會(huì)重定向到http://redirectURL/?code=888888888888,

要做的工作,就是截取這個(gè)重定向的URL中的code值(每次都不一樣),

這個(gè)code其實(shí)就是已經(jīng)授權(quán)的request_code,

但是它只是中間人,并不能用它去獲取用戶的信息

地址格式如下:

https://api.weibo.com/oauth2/default.html?code=fa4efb6310411f948423e69adeabec08

第3步,

用第2步中截取的code,再次拼裝url,

發(fā)起最后一次請(qǐng)求(必須是POST請(qǐng)求),

此時(shí),服務(wù)器返回的數(shù)據(jù)才是一個(gè)需要的json數(shù)據(jù),

它里面包含三個(gè)鍵值對(duì)

{  "access_token":"這個(gè)才是真正的ACCESS_TOKEN",  "remind_in":"157679999",  "expires_in":157679999,  "uid":"授權(quán)了的那個(gè)用戶的uid"}


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产在线精品一区二区三区不卡| 少妇无码av无码专区在线观看| 欧美日本三区| 97国产精品videossex| 一区二区三国产精华液| 国产精品一二三区在线观看| 色国产精品一区在线观看| 中文字幕jux大岛优香| 国产精品一区二区三区视频网站| 欧美日韩一区二区三区电影| 亚洲色图欧美色| 成人免费无遮挡无码黄漫视频| 一二三四在线视频观看社区| 国语对白做受xxxxx在线中国| 一级黄色片在线看| 国产一区二区三区高清视频| 久久久久久久一区| 欧美性aaa| 桃花网日韩影视在线观看视频| 四虎国产精品永久在线| 污视频在线免费观看| 国产精品不卡一区二区三区在线观看| 极品色av影院| 亚洲天堂自拍偷拍| 亚洲同志网站入口| 欧美三级欧美一级| 色哟哟在线观看一区二区三区| 九色视频网站在线观看| 亚洲自拍偷拍色图| 国产一区二区在线看| 亚洲国产成人午夜在线一区| 蜜桃成人在线| 色欲狠狠躁天天躁无码中文字幕| 欧美一级一级性生活免费录像| 俄罗斯女人裸体性做爰| 一本久道综合久久精品| 欧美日韩人妻精品一区在线| av电影院在线看| 国产精品久久久久久吹潮| 日本在线视频一区二区三区| 色的视频在线观看免费播放| 99国产一区二区三精品乱码| 在线亚洲一区观看| 久久综合亚洲精品| h版电影在线播放视频网站| 国精产品一区一区三区四川| 日本精品久久中文字幕佐佐木| 懂色av粉嫩av蜜臀av| 福利资源在线观看| 国产精品一品二品| 欧美精品亚洲精品日韩精品| 狠狠综合久久av一区二区小说| 在线综合亚洲欧美在线视频| 国产毛片视频| 国产女人18毛片水18精| 丁香啪啪综合成人亚洲| 亚洲国产精品专区久久| av网址在线播放| 男人女人靠逼视频| 亚洲精品国产精品国自产在线| 国产精品毛片一区二区| 99久久99热这里只有精品| 欧美性生交xxxxx| 蜜臀久久精品久久久久| 国产理论在线观看| 中文岛国精品亚洲一区| 日本午夜小视频| 免费看av的网址| 不卡高清视频专区| 在线播放 亚洲| 在线成人www免费观看视频| 国产精品嫩草影院com| 久久久亚洲综合| 欧美精品乱人伦久久久久久| 一级免费在线观看| 激情成人在线观看| 色欲狠狠躁天天躁无码中文字幕| 色成人免费网站| 亚欧洲乱码视频| 亚洲免费成人av电影| 韩国三级电影一区二区| 国产精品欧美大片| 成人做爰66片免费看网站| 综合欧美一区二区三区| 91xxx在线观看| 麻豆久久久久久| 国产毛片久久久久| 亚洲字幕久久| 成人拍拍拍免费视频网站| 午夜宅男在线视频| 亚洲国产精品久久不卡毛片| 日韩成人在线免费视频| 嫩草伊人久久精品少妇av杨幂| 亚洲成人网上| 欧美乱妇20p| 霍思燕三级露全乳照| 成人在线看视频| 日韩精品在线一区二区| 自由日本语亚洲人高潮| 香蕉国产在线视频| 亚洲男人天堂影院| av大全在线免费看| 91久久精品国产性色| 国产精品国产a级| 天天操夜夜逼| 久久精品视频中文字幕| 涩涩涩久久久成人精品| 26uuu久久综合| 日本一二三区视频免费高清| 成人国产精品一区二区免费麻豆| 精品国产一二区| 777国产偷窥盗摄精品视频| 国产精成人品2018| 亚洲精品免费在线观看| 污视频网站在线免费| 欧美一区二区免费视频| 中文成人激情娱乐网| 国产福利小视频在线观看| 羞羞的视频免费| 91精品一区二区三区久久久久久| 精品国产va久久久久久久| 在线观看不卡| www.男人天堂| 久久成人综合| 色哟哟欧美精品| 成人自拍爱视频| 色天使综合视频| 色999久久久精品人人澡69| 人妻丰满熟妇av无码区| 成人免费视频网站在线观看| 日韩国产精品一区二区三区| 欧美视频二区欧美影视| 欧美二区乱c少妇| 久久91超碰青草在哪里看| 久久精品夜色噜噜亚洲a∨| 亚洲精品少妇久久久久久| 无吗不卡中文字幕| 日韩欧美一级精品久久| 九色自拍论坛| 亚洲精品大片www| 国产精品99re| 在线观看免费污视频| 中文字幕在线乱| 日本高清无吗v一区| 国产一区二区三区不卡免费观看| 特级西西人体4444xxxx| 国产精品99久| 日韩成人黄色| ww亚洲ww在线观看国产| 国产精品自产拍在线观看| 香蕉久久夜色精品| 91传媒免费观看| 全部毛片永久免费看| 东凛在线观看| 免费看污污视频| 黄色aaa毛片| 日本视频免费观看| 久久精品二区| 999久久久国产| 一道精品视频一区二区三区男同| 欧美一区二区三区在线免费观看| 国产日韩欧美电影| 日本天堂中文字幕| 美日韩一级片在线观看| 欧美亚洲国产bt| 国产一区网站| 人人天天夜夜| 日韩成人在线视频| 成年人看的免费视频| 91xxx在线观看| 国产精品夜夜爽| 色播视频在线播放| 91蜜桃在线免费视频| 国产精品中文有码| 九九九视频在线观看| 亚洲精品一区二区三区在线播放| 欧美一区二区三区在线观看免费| 欧美视频在线第一页| 亚洲成a人片77777kkkk| 日韩av一区二区在线影视| 97aⅴ精品视频一二三区| 91精品国产91久久久久久| 欧美91视频| 在线观看国产中文字幕| 亚洲香蕉av在线一区二区三区| 亚洲成人偷拍自拍| 影音先锋在线中文| 少妇人妻一区二区| 91传媒视频免费| 日韩欧美一区二区久久婷婷| 成人18视频免费69| 欧美一二区视频| 国产精品传媒毛片三区| 国产一区二区丝袜高跟鞋图片| 国产精品福利网站| 日批视频免费观看| 欧美视频中文字幕| 国产激情视频一区二区三区| 欧美大码xxxx| 亚洲天堂av老司机| 欧洲日本亚洲国产区| 看黄色一级大片| zzijzzij亚洲日本成熟少妇| 国产69精品99久久久久久宅男| h在线免费观看| 成人在线综合网| 亚洲欧洲久久| 97视频在线观看网址| 久久久亚洲精华液精华液精华液| 成人免费精品动漫网站| 成人在线观看网站| 男人看的污网站| 久草中文在线观看| 福利视频在线导航| 中文字幕a在线观看| 黑人精品一区二区三区| 久热在线视频精品网站| 欧美三区美女| 欧美四级剧情无删版影片| 你懂的在线观看一区二区| 久久精品亚洲麻豆av一区二区| 免费观看在线综合色| 国产99一区视频免费| 久久精品国产精品青草| 国产99久久久国产精品免费看| 在线观看特色大片免费视频| 国产九色在线| 欧美伦理一区二区| 国产欧美日韩亚洲精品| 欧美精品一区二区三区在线四季| 日韩av在线一区二区| 亚洲国产成人精品激情在线| 制服丝袜av在线| 一区二区自拍偷拍| 无码h肉动漫在线观看| 一级片免费在线播放| 少妇高潮久久久久久潘金莲| 日韩高清在线一区| 成人aa视频在线观看| 色哟哟在线观看视频| 最新日韩精品| 无码国产69精品久久久久同性| 亚洲日本电影在线| 最近中文字幕免费mv视频多少集| 亚洲国产三级网| 国产一区二区精品免费| 免费av在线电影| 国产视频一区二区三区四区| 午夜一级电影| 男人在线观看视频| 涩涩在线视频| 欧美国产一区二区三区| 欧美精品1区2区3区| 免费a级在线播放| 无码播放一区二区三区| 精品久久久久久无| 污视频免费在线观看| www.狠狠操| 久久久久久久性潮| 亚洲国产另类 国产精品国产免费| 色多多视频网站| 久久久久免费视频| 邻居大乳一区二区三区| 成人精品国产福利| 国产免费一区| 日本精品一区二区| 色呦呦一区二区| 国产一区2区在线观看| 久久精品男人天堂| 欧美激情综合五月色丁香小说| 亚洲美女精品成人在线视频| 成人免费va视频| 性插视频在线观看| 中文字幕人妻一区二区在线视频| 国产精品一区专区| 欧美日本一区| 国产福利久久精品| 久久国产生活片100| 青青青视频在线| 国产精品无码久久av| 国产1区2区3区| 久久99精品久久久久久久青青日本| 日韩视频免费观看高清在线视频| 国内在线精品| 91精品国产色综合久久不卡电影| 视频一区二区在线| 91麻豆精品国产91久久久更新时间| 中文字幕一区二区三区视频| 2024国产精品| 免费在线观看h| 天天操夜夜操视频| 精品国产精品一区二区夜夜嗨| 日韩黄色三级在线观看| 国产成人免费视频一区| 亚洲经典一区| 国产精品qvod| av在线免费不卡| 四季av一区二区| 国产精品久久久久久av公交车| 邻居大乳一区二区三区| 亚洲熟女综合色一区二区三区| 免费a视频在线观看| 久久伊人精品| 成人国产精品一区二区免费麻豆| 日韩av无码一区二区三区不卡| 在线免费一区三区| 成人精品一区二区三区中文字幕| 欧美三级电影网站| a毛片不卡免费看片| melody高清在线观看| 久久久久久蜜桃一区二区| 一区免费观看| 欧美成人精品网站| 欧美国产一级片| 国产稀缺精品盗摄盗拍| a级片在线免费| 欧美激情国产精品| 97成人精品区在线播放| 欧美性jizz18性欧美| 日韩亚洲精品电影| 日本欧美中文字幕| 亚洲永久无码7777kkk| 国产精品久久久亚洲第一牛牛| 蜜桃麻豆av在线| 欧美大片va欧美在线播放| 国产中文一区| 99久久婷婷国产一区二区三区| 中文字幕电影在线|