您的位置:首页 > 移动开发 > IOS开发

iOS原生QQ第三方登录

2015-07-03 17:00 429 查看

本文简介

最近在做QQ登录,这里把QQ原生第三方登录集成过程和大家分享一下。

首先需要下载QQ SDK


———–QQ第三方登录官方SDK下载

从下载的文件夹中可以找到下图的两个文件




在这里为了方便起见,我们在一个新的工程里实现QQ登录,下面开始我们的QQ第三方登录。


1. 新建一个工程



2. 导入SDK

将下载的SDK中的



拖进新建的工程 勾选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登录)。

如果文章中有错误、歧义或者模糊的地方,还请多多指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: