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等。看官方文檔說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM