iOS开发日记4-第三方登录(ShareSDK)
2015-08-18 16:01
639 查看
今天博主有一个第三方登录的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.
第三方登录的方法很多,最直接的方法就是去各大开发者平台申请id之后看官方文档直接集成,当然也有偷懒的方法.类似博主,使用的是ShareSDK进行第三方登录,当然也可以使用友盟进行第三方登录.第三方登录主要是通过拉取第三方的授权,获得第三方平台的用户ID,作为参数上传到自己的服务器中,换取令牌,达到登录的目的.
1.申请appKey ,去要集成的各大开发者平台申请
2.导入ShareSDK
3.配置URL Schemes
在这里配置URL Schemes,identifier随便填,能区别其他应用即可,URL Schemes按开发者平台要求填,通常是简称+appKey
4.添加依赖库
必须添加的依赖库如下:
libicucore.dylib
libz.dylib
libstdc++.dylib
JavaScriptCore.framework
以下依赖库根据社交平台添加
新浪微博SDK依赖库
ImageIO.framework
QQ好友和QQ空间SDK依赖库(新注册腾讯开放平台帐号只支持SSO授权,只是老开发者才可以使用网页授权)
libstdc++.dylib
libsqlite3.dylib
5.在didFinishLaunch中注册appKey,初始化
/**ShareSDK 集成*/
[ShareSDK registerApp:@"appKey"];
#pragma mark-------
[ShareSDK connectSinaWeiboWithAppKey:@"appKey"
appSecret:@"APPSecret"
redirectUri:@"http://www.baidu.com"];
[ShareSDK connectQZoneWithAppKey:@"appKey"
appSecret:@"APPSecret"
qqApiInterfaceCls:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class]];
[WXApi registerApp:APP_ID];
[ShareSDK connectWeChatWithAppId:APP_ID //微信APPID
appSecret:APP_SECRET //微信APPSecret
wechatCls:[WXApi class]];
6.在openURL中回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [ShareSDK handleOpenURL:url
sourceApplication:sourceApplication
annotation:annotation
wxDelegate:self];
}
7. 在登录界面进行登录
#pragma mark -Weixin 登录
- (void)loginWeixinBtnClicked {
[ShareSDK getUserInfoWithType:ShareTypeWeixiTimeline
authOptions:_authOptions
result:^(BOOL result, id<ISSPlatformUser> userInfo, id<ICMErrorInfo> error) {
if (result)
{
//将从第三方平台获取的参数上传服务器
NSDictionary *dict = @{@"udid" : [userInfo uid],
@"client" : YORequest_Client
};
[self startTestLoginWithDictionary:dict withIsFrom:YES];
}
完成
PS:适配iOS9.0
http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/
在提交审核的时候如果没有安装qq微信,提示未安装qq微信会被拒绝,使用如下方法即可
第三方登录的方法很多,最直接的方法就是去各大开发者平台申请id之后看官方文档直接集成,当然也有偷懒的方法.类似博主,使用的是ShareSDK进行第三方登录,当然也可以使用友盟进行第三方登录.第三方登录主要是通过拉取第三方的授权,获得第三方平台的用户ID,作为参数上传到自己的服务器中,换取令牌,达到登录的目的.
1.申请appKey ,去要集成的各大开发者平台申请
2.导入ShareSDK
3.配置URL Schemes
在这里配置URL Schemes,identifier随便填,能区别其他应用即可,URL Schemes按开发者平台要求填,通常是简称+appKey
4.添加依赖库
必须添加的依赖库如下:
libicucore.dylib
libz.dylib
libstdc++.dylib
JavaScriptCore.framework
以下依赖库根据社交平台添加
新浪微博SDK依赖库
ImageIO.framework
QQ好友和QQ空间SDK依赖库(新注册腾讯开放平台帐号只支持SSO授权,只是老开发者才可以使用网页授权)
libstdc++.dylib
libsqlite3.dylib
5.在didFinishLaunch中注册appKey,初始化
/**ShareSDK 集成*/
[ShareSDK registerApp:@"appKey"];
#pragma mark-------
[ShareSDK connectSinaWeiboWithAppKey:@"appKey"
appSecret:@"APPSecret"
redirectUri:@"http://www.baidu.com"];
[ShareSDK connectQZoneWithAppKey:@"appKey"
appSecret:@"APPSecret"
qqApiInterfaceCls:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class]];
[WXApi registerApp:APP_ID];
[ShareSDK connectWeChatWithAppId:APP_ID //微信APPID
appSecret:APP_SECRET //微信APPSecret
wechatCls:[WXApi class]];
6.在openURL中回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [ShareSDK handleOpenURL:url
sourceApplication:sourceApplication
annotation:annotation
wxDelegate:self];
}
7. 在登录界面进行登录
#pragma mark -Weixin 登录
- (void)loginWeixinBtnClicked {
[ShareSDK getUserInfoWithType:ShareTypeWeixiTimeline
authOptions:_authOptions
result:^(BOOL result, id<ISSPlatformUser> userInfo, id<ICMErrorInfo> error) {
if (result)
{
//将从第三方平台获取的参数上传服务器
NSDictionary *dict = @{@"udid" : [userInfo uid],
@"client" : YORequest_Client
};
[self startTestLoginWithDictionary:dict withIsFrom:YES];
}
完成
PS:适配iOS9.0
http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/
在提交审核的时候如果没有安装qq微信,提示未安装qq微信会被拒绝,使用如下方法即可
相关文章推荐
- IOS开发系列--IOS程序开发概览
- IOS开发系列--无限循环的图片浏览器
- iOS开发系列--视图切换
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- iOS开发系列--打造自己的&ldquo;美图秀秀&rdquo;
- iOS开发系列--让你的应用&ldquo;动&rdquo;起来
- iOS开发系列--并行开发其实很容易
- iOS开发系列--数据存取
- iOS开发系列--地图与定位
- iOS开发系列--通知与消息机制
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- [置顶]iOS开发系列文章(持续更新。。。)
- iOS学习笔记1-多线程GCD与block
- iOS项目开发实战——自定义控件背景与颜色
- iOS本地推送(本地通知)
- IOS 动画播放案例
- SDWebImage内部实现过程
- ios7 状态栏与导航栏布局与ScrollView的特性分析
- iOS-instancetype与id的比较