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登录)。
如果文章中有错误、歧义或者模糊的地方,还请多多指出。
相关文章推荐
- IOS中 Block简介与用法(一)
- 仿iOS自定义SwitchButton
- 仿iOS自定义SwitchButton
- 关于IOS的多任务以及内存管理
- iOS编程 CALayer 自定义层对象并添加 第二种方法
- 浅析iOS程序设计模式(基于MVC)
- iOS编程 CALayer 自定义层对象并添加
- iOS 9 适配系列教程
- ios高德地图提醒打开定位功能
- AudioServicesPlaySystemSound(1108);系统声音
- iOS编程 CALayer
- 一步一步教你做ios推送
- iOS开发属性与成员变量的区别
- IOS 序列化与反序列化
- IOS中的基础动画CABasicAnimation的运用指南
- ios开发,让界面只响应单个点击事件
- 联想Win7笔记本通过BIOS禁止开机声音步骤
- archive的时候报“ no identity found"错误 解决方案
- iOS 9 适配系列教程
- iOS圆形按钮