iOS 基於第三方QQ受權登陸

iOS 基於第三方QQ受權登陸html

 

 

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

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

2,註冊成功後建立本身的APP,填寫一堆基本信號後得到一個App_Key,就是你APP的惟一識別碼;app

3,下載對應的SDK,而且閱讀其中的開發文檔或demo,一般看開發文檔比較直觀,若是看demo,有些SDK的demo簡直不忍直視;函數

4,嵌入SDK中對應功能,測試成功後提交第三方平臺審覈,等審覈經過後就能夠正式接入第三方SDK的功能了;測試

5,完成全部功能後就提交AppStore審覈吧,大概一週左右便可。url

 

一,QQ登陸受權開發:spa

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

2,在AppDelegate.m中實現下面方法,注意,直接複製代碼,二者寫其一便可,固然了別忘了引入頭文件,這是用做返回APP時候用的回調函數。htm

 

?

1

2

3

4

5

6

7

8

9

- (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,註冊並受權,注意受權這裏會出現問題

 

?

1

<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];

?

1

<span style="white-space:pre">  </span>[_tencentOAuth authorize:_permissions inSafari:NO]; //受權

 

4,實現登陸成功與否的回調函數,實現協議TencentSessionDelegate,代碼以下:

 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

- (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,如何獲取暱稱呢,文檔提供了這樣一個方法

 

?

1

[_tencentOAuth getUserInfo];

 

可是返回類型是個BOOL相似,不少朋友就鬱悶了,這是什麼狀況,通過看代碼,發現若是開發者調用了這個方法,若是成功則會實現下面協議TencentSessionDelegate裏面的回調函數:

?

1

2

3

4

5

6

-(void)getUserInfoResponse:(APIResponse *)response

{

 //   NSLog(@"respons:%@",response.jsonResponse);

      

    self.name.text = [response.jsonResponse objectForKey:@"nickname"];

}

這樣就能獲得咱們想要的暱稱等信息,到這裏就算完成了咱們的QQ登陸受權了,剩下的就是發給後臺這些登陸信息,而且保持受權成功後的token等,看官方文檔說明。

相關文章
相關標籤/搜索