iOS 基於第三方QQ授權登入,ios第三方qq授權

來源:互聯網
上載者:User

iOS 基於第三方QQ授權登入,ios第三方qq授權

基於iOS實現APP的第三方QQ登陸,接入第三方SDK時的一個基本的步驟:

1,找到相關的開放平台,QQ互聯平台,http://connect.qq.com/;

2,註冊成功後建立自己的APP,填寫一堆基本訊號後獲得一個App_Key,就是你APP的唯一識別碼;

3,下載對應的SDK,並且閱讀其中的開發文檔或demo,通常看開發文檔比較直觀,如果看demo,有些SDK的demo簡直不忍直視;

4,嵌入SDK中對應功能,測試成功後提交第三方平台審核,等審核通過後就可以正式接入第三方SDK的功能了;

5,完成所有功能後就提交AppStore審核吧,大概一周左右即可。


一,QQ登入授權開發:

1,按照開發文檔匯入SDK,然後把註冊成功後擷取到的Key加入到Url Schemes中,例如:tencent1101737816,注意這些文檔寫的很清楚;

2,在AppDelegate.m中實現下面方法,注意,直接複製代碼,兩者寫其一即可,當然了別忘了引入標頭檔,這是用作返回APP時候用的回呼函數。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{    return [TencentOAuth HandleOpenURL:url];} - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{    return [TencentOAuth HandleOpenURL:url];}

3,註冊並授權,注意授權這裡會出現問題

<span style="white-space:pre"></span>NSArray *_permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, nil];
<span style="white-space:pre"></span>[_tencentOAuth authorize:_permissions inSafari:NO]; //授權</span>

4,實現登入成功與否的回呼函數,實現協議TencentSessionDelegate,代碼如下:

- (void)tencentDidLogin{    _labelTitle.text = @"登入完成";         if (_tencentOAuth.accessToken && 0 != [_tencentOAuth.accessToken length]){        //  記錄登入使用者的OpenID、Token以及到期時間        _labelAccessToken.text = _tencentOAuth.accessToken;             }else{        _labelAccessToken.text = @"登入不成功 沒有擷取accesstoken";    }} -(void)tencentDidNotLogin:(BOOL)cancelled{    if (cancelled){        _labelTitle.text = @"使用者取消登入";    }else{        _labelTitle.text = @"登入失敗";    }} -(void)tencentDidNotNetWork{    _labelTitle.text=@"無網路連接,請設定網路";}

5,如果代碼能走到登入完成這裡,並且獲得了accesstoken,那說明我們的登入流程就走完了,剩下的舊是擷取使用者具體的資訊了,如暱稱,城市等等;

6,如何擷取暱稱呢,文檔提供了這樣一個方法

[_tencentOAuth getUserInfo];

但是傳回型別是個BOOL類似,很多朋友就鬱悶了,這是什麼情況,經過看代碼,發現如果開發人員調用了這個方法,如果成功則會實現下面協議TencentSessionDelegate裡面的回呼函數:

-(void)getUserInfoResponse:(APIResponse *)response{ //   NSLog(@"respons:%@",response.jsonResponse);         self.name.text = [response.jsonResponse objectForKey:@"nickname"];}

這樣就能得到我們想要的暱稱等資訊,到這裡就算完成了我們的QQ登入授權了,剩下的就是發給後台這些登入資訊,並且保持授權成功後的token等,看官方文檔說明。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.