iOS中常见的第三方登录
来源:互联网 发布:二阶矩阵 编辑:程序博客网 时间:2024/05/21 10:34
(一)QQ
首先去官网申请应用,获得appid和key,地址http://wiki.open.qq.com/wiki
导入sdk,由于我使用的是cocoapods,所以省去了一些配置步骤,如果不用pods导入,请参照这篇文章配置:http://www.cnblogs.com/Hakim/p/5736886.html
pods导入后,还需要设置一下
在url schemes中输入tencent+appid,如appid为111,就输入tencent111
接下来,配置info.plist文件
需要设置LSApplicationQueriesSchemes字段,如图
,不想一个个输入的可以直接编辑
<key>LSApplicationQueriesSchemes</key><array><string>mqqapi</string><string>mqq</string><string>mqqOpensdkSSoLogin</string><string>mqqconnect</string><string>mqqopensdkdataline</string><string>mqqopensdkgrouptribeshare</string><string>mqqopensdkfriend</string><string>mqqopensdkapi</string><string>mqqopensdkapiV2</string><string>mqqopensdkapiV3</string><string>mqzoneopensdk</string><string>wtloginmqq</string><string>wtloginmqq2</string><string>mqqwpa</string><string>mqzone</string><string>mqzonev2</string><string>mqzoneshare</string><string>wtloginqzone</string><string>mqzonewx</string><string>mqzoneopensdkapiV2</string><string>mqzoneopensdkapi19</string><string>mqzoneopensdkapi</string><string>mqzoneopensdk</string></array>
下面在代码中实现:
AppDelegate.m:
导入#import<TencentOpenAPI/TencentOAuth.h>
实现这两个方法
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
return [TencentOAuthHandleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
return [TencentOAuthHandleOpenURL:url];
}
在你需要登录的页面实现:
导入#import <TencentOpenAPI/TencentOAuth.h>
#define appid @"1105664615"
文件需要遵循协议<TencentSessionDelegate>
@property (nonatomic,strong)TencentOAuth *tencentOAuth; //设置为属性,不然不能进入回调方法
在进入页面的时候实现:
_tencentOAuth = [[TencentOAuthalloc] initWithAppId:appidandDelegate:self];
在点击第三方登录按钮时实现:
NSArray* permissions = [NSArrayarrayWithObjects:
kOPEN_PERMISSION_GET_SIMPLE_USER_INFO,kOPEN_PERMISSION_GET_VIP_INFO,kOPEN_PERMISSION_GET_USER_INFO,
nil];//数组值可以库文件中点击进去查看,有中文注释
[_tencentOAuth authorize:permissionsinSafari:NO];
代理方法:
/**
* 登录成功后的回调
*/
- (void)tencentDidLogin{
/** Access Token凭证,用于后续访问各开放接口 */
if (_tencentOAuth.accessToken) {
//获取用户信息。调用这个方法后,qq的sdk会自动调用
//- (void)getUserInfoResponse:(APIResponse*) response
//这个方法就是用户信息的回调方法。
BOOL tmpBool = [_tencentOAuthgetUserInfo];
if (!tmpBool) {
//未获取授权信息的提示
}
}else{
NSLog(@"accessToken没有获取成功");
}
}
//这个方法能收到各种需要的信息,我列举了一些自己觉得有用的,其它的也可以自己去查看
- (void)getUserInfoResponse:(APIResponse*) response{
NSLog(@"%@",_tencentOAuth.openId);
NSLog(@"%@",_tencentOAuth.accessToken);
NSLog(@"%@",response.jsonResponse[@"nickname"]);
NSLog(@"%@",response.jsonResponse[@"province"]);
NSLog(@"%@",response.jsonResponse[@"city"]);
NSLog(@"%@",response.jsonResponse[@"gender"]);
NSLog(@"%@",response.jsonResponse[@"figureurl_qq_2"]);
}
/**
* 登录失败后的回调
* \param cancelled 代表用户是否主动退出登录
*/
- (void)tencentDidNotLogin:(BOOL)cancelled{
NSLog(@"失败");
}
/**
* 登录时网络有问题的回调
*/
- (void)tencentDidNotNetWork{
NSLog(@"网络错误");
}
//这个方法在文档中有提及,但是在qq的demo中并没有进入,不知道为什么,
- (NSArray *)getAuthorizedPermissions:(NSArray *)permissions withExtraParams:(NSDictionary *)extraParams{
NSLog(@"111permissions = %@",permissions);
NSLog(@"222extraParams = %@",extraParams);
returnnil;
}
- iOS中常见的第三方登录
- IOS中常见的第三方框架
- ios开发中第三方登录遇到的问题
- iOS 移动应用开发中常见的第三方库
- iOS集成第三方登录的使用
- iOS QQ 第三方登录
- iOS QQ第三方登录
- iOS QQ第三方登录
- ios QQ第三方登录
- iOS第三方分享,登录
- iOS:shareSDK第三方登录
- iOS QQ第三方登录
- iOS中使用swift语言做淘宝的第三方登录
- iOS的应用中集成QQ第三方登录获取相关信息
- iOS 第三方登录之 QQ登录
- IOS开发中有用的第三方
- iOS 中 常用的第三方库
- iOS 中 常用的第三方库
- pragma once
- Windows NT驱动
- error RC2104 : undefined keyword or key name: Select 1394
- #51nod 1305 Pairwise Sum and Divide
- 修改Makefile.am,无法生效
- iOS中常见的第三方登录
- hadoop-2.7.1/tmp/dfs/namesecondary/in_use.lock (Permission denied) 错误解决
- SwipeRefreshLayout基本使用和冲突解决机制
- 一个循环队列在linux下的应用
- TortoiseSVN 修改服务器地址url
- ubuntu 左边菜单栏不见
- Codeforces Intel Code Challenge Elimination Round(Oct/01/2016)
- tortoise working copy locked 问题
- 【学习笔记javascript设计模式与开发实践(迭代器模式)----7】