iOS原生QQ第三方登錄

本文簡介

最近在做QQ登錄,這裏把QQ原生第三方登錄集成過程和大家分享一下。

首先需要下載QQ SDK

———–QQ第三方登錄官方SDK下載

從下載的文件夾中可以找到下圖的兩個文件

QQSdk

在這裏爲了方便起見,我們在一個新的工程裏實現QQ登錄,下面開始我們的QQ第三方登錄。

1. 新建一個工程

2. 導入SDK

將下載的SDK中的
QQSdk
拖進新建的工程 勾選Copy items if needed

這裏寫圖片描述
這裏寫圖片描述

3. 添加依賴庫

Security.framework 、 SystemConfiguration.framework 、 CoreGraphics.framework 、 CoreTelephony.framework 、 libiconv.dylib 、libsqlite3.dylib 、 libstdc++.dylib 、 libz.dylib 共8個
這裏寫圖片描述

4. 配置SDK Framework路徑

Build Settings -->搜索header  找到Framework Search Paths 
打開編輯頁面  將工程的TencentOpenAPI.Framework拖進編輯頁面中

這裏寫圖片描述
這裏寫圖片描述

同樣的方法 配置Header Search Paths 
注意:這裏是將TencentOpenAPI.Framework展開後的Headers拖進配置頁面中

這裏寫圖片描述

5. 代碼實現

5.1 在Appdelegate類中 導入頭文件 TencentOAuth.h

#import <TencentOAuth.h>

設置scheme回調 
- (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];
}

5.2 在登錄頁面實現QQ登錄 即此處的ViewController頁面

    注:(5.2的操作全部在ViewController.m中進行)

5.2.1 導入登錄所需頭文件

#import <TencentOAuth.h>
#import <TencentApiInterface.h>

5.2.2 實現代理以及聲明對象

@interface ViewController ()<TencentSessionDelegate>
{
    TencentOAuth*_tencentOAuth;
}

5.2.3 配置Appkey以及redirectURI 此處以官方Demo中的 數據爲例,在viewDidLoad中進行配置

- (void)viewDidLoad {
    [super viewDidLoad];
    _tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"222222"  andDelegate:self];
    _tencentOAuth.redirectURI = @"www.qq.com";
}

5.2.4 發起QQ登錄,說明想要獲取用戶的哪些信息, login函數一般作爲登錄button的點擊事件

- (void)login
{
    NSArray*array =  [NSArray arrayWithObjects:@"get_user_info", @"get_simple_userinfo", @"add_t", nil];
    [_tencentOAuth authorize:array inSafari:NO];

}

5.2.5 實現TencentSessionDelegate代理返回函數

- (void)tencentDidLogin
{
    NSLog(@"登錄完成") ;

    if (_tencentOAuth.accessToken && 0 != [_tencentOAuth.accessToken length])
    {
        //  記錄登錄用戶的Token 以及其他信息 詳見TencentOAuth類
        NSLog(@"獲取到Token--%@", _tencentOAuth.accessToken);
        //      獲取到Token--216F58EF4BF7F5EA34D112XXXXXXXXXX

        //獲取用戶詳細信息
        [_tencentOAuth getUserInfo];
    }
    else
    {
        NSLog(@"登錄不成功 沒有獲取accesstoken");
    }
}

//用戶的頭像,暱稱,城市等信息在這個方法裏返回。
-(void)getUserInfoResponse:(APIResponse *)response
{
    NSLog(@"獲取到用戶詳細信息%@",[response jsonResponse]);
}

5.2.6 異常處理

-(void)tencentDidNotLogin:(BOOL)cancelled
{
    if (cancelled)
    {
        NSLog(@"用戶取消登錄");
    }
    else
    {
        NSLog(@"登錄失敗");
    }
}

-(void)tencentDidNotNetWork
{
    NSLog(@"無網絡連接,請設置網絡");
}

6.URL Types配置

這裏寫圖片描述
這裏寫圖片描述

結語:

實現了以上步驟,第三方登錄就完成了 。

備註:(只能在真機上調用QQ登錄)。

如果文章中有錯誤、歧義或者模糊的地方,還請多多指出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章