ShareSDK [iOS常见问题] 关于使用QQ做第三方登录的问题!
2015-07-27 00:00
513 查看
注意:QQ本身没有授权功能,所以想要使用QQ做第三方登录必须通过QQ空间来实现!
第一步:集成ShareSDK(步骤同集成分享的一样,如果已经集成过就不用再重新集成了),这里需要注意的是,由于是要通过QQ空间来实现授权登录,所以在下载ShareSDK包的时候别忘了勾选QQ空间,不然会报尚未导入平台(6)的错误。
第二步:打开工程中的*AppDelegate.m(*代表你的工程名字) 文件,导入QQSDK的头文件:
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
检查是否已加入handleOpenURL的处理方法,如果没有则添加如下代码:
- (BOOL)application: (UIApplication *)application handleOpenURL: (NSURL *)url
{
return [ShareSDK handleOpenURL:url
wxDelegate:self;
}
- (BOOL)application: (UIApplication *)application
openURL: (NSURL *)url
sourceApplication: (NSString *)sourceApplication
annotation: (id)annotation
{
return [ShareSDK handleOpenURL: url
sourceApplication:sourceApplication
annotation: annotation
wxDelegate: self;
}
第三步: 加入QQ空间初始化方法
在*AppDelegate.m里面的
- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions{}方法中
//初始化我们的sdk
[ShareSDK registerApp:@"iosv1101"];
//添加QQ空间应用
[ShareSDK connectQZoneWithAppKey:@"100371282"
appSecret:@"aed9b0303e3ed1e27bae87c33761161d"
qqApiInterfaceCls:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class;
注意:这里需要填入的AppKey就是您在QQ互联注册应用的AppID,appSecret就是AppKey!
第四步:配置QQ空间的URL Schemes
打开*-Info.plist(*代表你的工程名字)。找到URL types配置项(如果没有则新增),展开URL types – URL Schemes,在URL Schemes下分别各新增一项用于QQ空间的Scheme(如果不添加则会导致法返回应用)。其填写格式为:tencent+appID(你在QQ空间中申请的AppId), 如:tencent100371282。
第五步:授权登录并获取用户信息
在您的点击事件方法中加入授权获取用户信息接口:
[ShareSDK getUserInfoWithType:ShareTypeQQSpace
authOptions:nil
result:^(BOOL result, id<ISSPlatformUser> userInfo, id<ICMErrorInfo> error) {
if (result)
{
//打印输出用户uid:
NSLog(@"uid = %@",[userInfo uid]);
//打印输出用户昵称:
NSLog(@"name = %@",[userInfo nickname]);
//打印输出用户头像地址:
NSLog(@"icon = %@",[userInfo profileImage]);
}else{
NSLog(@"授权失败!error code == %d, error code == %@", [error errorCode], [error errorDescription]);
}
}];
注意:ShareTypeQQSpace这里一定是写QQSpace不能写QQ否则会报 不支持授权功能的错误。
这里只在result里面做了输出的操作 如果您想要做存储数据或者其它显示都可以在这里面操作!
第一步:集成ShareSDK(步骤同集成分享的一样,如果已经集成过就不用再重新集成了),这里需要注意的是,由于是要通过QQ空间来实现授权登录,所以在下载ShareSDK包的时候别忘了勾选QQ空间,不然会报尚未导入平台(6)的错误。
第二步:打开工程中的*AppDelegate.m(*代表你的工程名字) 文件,导入QQSDK的头文件:
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
检查是否已加入handleOpenURL的处理方法,如果没有则添加如下代码:
- (BOOL)application: (UIApplication *)application handleOpenURL: (NSURL *)url
{
return [ShareSDK handleOpenURL:url
wxDelegate:self;
}
- (BOOL)application: (UIApplication *)application
openURL: (NSURL *)url
sourceApplication: (NSString *)sourceApplication
annotation: (id)annotation
{
return [ShareSDK handleOpenURL: url
sourceApplication:sourceApplication
annotation: annotation
wxDelegate: self;
}
第三步: 加入QQ空间初始化方法
在*AppDelegate.m里面的
- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions{}方法中
//初始化我们的sdk
[ShareSDK registerApp:@"iosv1101"];
//添加QQ空间应用
[ShareSDK connectQZoneWithAppKey:@"100371282"
appSecret:@"aed9b0303e3ed1e27bae87c33761161d"
qqApiInterfaceCls:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class;
注意:这里需要填入的AppKey就是您在QQ互联注册应用的AppID,appSecret就是AppKey!
第四步:配置QQ空间的URL Schemes
打开*-Info.plist(*代表你的工程名字)。找到URL types配置项(如果没有则新增),展开URL types – URL Schemes,在URL Schemes下分别各新增一项用于QQ空间的Scheme(如果不添加则会导致法返回应用)。其填写格式为:tencent+appID(你在QQ空间中申请的AppId), 如:tencent100371282。
第五步:授权登录并获取用户信息
在您的点击事件方法中加入授权获取用户信息接口:
[ShareSDK getUserInfoWithType:ShareTypeQQSpace
authOptions:nil
result:^(BOOL result, id<ISSPlatformUser> userInfo, id<ICMErrorInfo> error) {
if (result)
{
//打印输出用户uid:
NSLog(@"uid = %@",[userInfo uid]);
//打印输出用户昵称:
NSLog(@"name = %@",[userInfo nickname]);
//打印输出用户头像地址:
NSLog(@"icon = %@",[userInfo profileImage]);
}else{
NSLog(@"授权失败!error code == %d, error code == %@", [error errorCode], [error errorDescription]);
}
}];
注意:ShareTypeQQSpace这里一定是写QQSpace不能写QQ否则会报 不支持授权功能的错误。
这里只在result里面做了输出的操作 如果您想要做存储数据或者其它显示都可以在这里面操作!
相关文章推荐
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- QQ商业化,如何实现从0到1的破局?
- 十年生死两茫茫,Linux QQ 突然复活!
- VB实现的《QQ美女找茬游戏》作弊器实例
- 路由器端QQ封堵方案
- QQ输入法自动删除其它输入法的解决方法
- 让普通QQ号也能克隆QQ好友
- VBS取QQ或TM自动登录代码并防止关闭的脚本
- php获取QQ头像并显示的方法
- php实现QQ空间获取当前用户的用户名并生成图片
- 可浮动QQ在线客服
- 查看QQ是否在线状态的网页代码
- 深入javascript json QQ网页登陆
- iptables做策略屏蔽QQ与MSN
- js快速与任意QQ号码建立临时对话
- javascript 仿QQ滑动菜单效果代码
- PHP获取QQ达人QQ信息的方法
- Windows系统清理QQ聊天记录、反监控QQ聊天的BAT脚本分享
- JS判断客服QQ号在线还是离线状态的方法