感谢您的反馈!
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL result = [ALBBService(ALBBOpenAccountSSOService) handleOpenUrl:url];
if (!result) {
//用户其他操作
return NO;
}
return result;
} 添加AlibabaAuthExt.framework和AlibabaAuthSDK.framework的依赖
在TARGETS->Info->URL Types下添加URL Schemes,格式是tbopen+appkey
info.plist增加LSApplicationQueriesSchemes,如下图所示
获取友盟apkey。云账号三方登录模块是在友盟share SDK基础做了一层集成,如果你尚未在友盟注册账号,需要先注册,注册之后登录你的账号,点击添加新应用,完成新应用填写之后,将进入应用管理页面。在该页面就能得到Appkey。目前云账号接入的友盟SDK版本是6.0
申请第三方平台APPID。目前云账号支持淘宝,微博,微信,QQ登录,除了淘宝登录,其他三种平台都需要申请APPID,申请平台APPID请直接参考友盟文档申请第三方账号,
配置scheme。在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,则需要在plist文件中添加。获取各个平台appkey或者appid的方法可以参考分享详细文档绑定各个平台部分,各个平台的url scheme格式如下表:
| 平台 |
scheme设置格式 |
|---|---|
| 新浪微博 | “wb”+新浪appkey,例如“wb126663232” |
| 微信 | 微信应用appId,例如“wxd9a39c7122aa6516” |
| 需要添加两个URL schemes 1. “QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”,注意大写,生成十六进制方法:点击链接,2.“tencent“+腾讯QQ互联应用Id,例如“tencent100424468" |
初始化友盟
#import <UMSocialCore/UMSocialCore.h>
-(void)initUmeng{
//打开日志
[[UMSocialManager defaultManager] openLog:YES];
//设置友盟appkey
[[UMSocialManager defaultManager] setUmSocialAppkey:@"umappkey"];
//微信(如果接入)
[ALBBService(ALBBOpenAccountSSOService) setPlatform:OAAuthPlatformType_WechatSession appKey:@"appkey" appSecret:@"appsecret" redirectURL:@"url"];
//QQ(如果接入)
[ALBBService(ALBBOpenAccountSSOService) setPlatform:OAAuthPlatformType_QQ appKey:@"appkey" appSecret:@"appsecret" redirectURL:@"url"];
//微博(如果接入)
[ALBBService(ALBBOpenAccountSSOService) setPlatform:OAAuthPlatformType_Sina appKey:@"appkey" appSecret:@"appsecret" redirectURL:@"url"];
} 设置授权回调处理的delegate(ALBBOpenAccountSSODelegate)
[ALBBService(ALBBOpenAccountUIService) setOpenAccountSSODelegate:self];
实现代理方法
- (void) openAccountSSOLoginError:(NSError *)error Session:(ALBBOpenAccountSession *)currentSession {
if(!error) {
[MyAlertView alert:[NSString stringWithFormat:@"登录成功 \n token:%@ \n user:%@", [currentSession getAuthToken], [currentSession getUser]]];
} else {
NSLog(@"%@",error);
}
} 接入方可以不使用loginViewController提供的按钮进行三方授权登录,而是自建UI进行授权登录
调用如下方法(ALBBOpenAccountSSO.h),其中delegate需要接入方自行维护,openaccount framwork不进行强引用
- (void)oauthWithPlatForm:(OAAuthPlatformType)sType
presentingVC:(UIViewController *)presentingController
delegate:(id<SSODelegate>)delegate; 实现代理方法(ALBBOpenAccountSSO.h/SSODelegate)
- (void)openAccountOAuthError:(NSError *)error
Session:(ALBBOpenAccountSession *)session; 当用户登录后,可以手动绑定第三方账号体系
调用如下方法(ALBBOpenAccountSSO.h),其中delegate需要接入方自行维护,openaccount framwork不进行强引用。此方法调用必须有登录态,否则error code会返回555
- (void)oaBindWithPlatForm:(OAAuthPlatformType)sType
presentingVC:(UIViewController *)presentingController
delegate:(id<SSODelegate>)delegate; 实现代理方法(ALBBOpenAccountSSO.h/SSODelegate),其中ALBBOpenAccountSSOLink是第三方账号返回的信息
- (void)openAccountBindError:(NSError *)error
Session:(ALBBOpenAccountSession *)session
ThirdInfo:(ALBBOpenAccountSSOLink *)link; - (void)getThirdBindInfoWithCallback:(void (^)(NSArray<ALBBOpenAccountSSOLink *> *accountLinks,NSError *error))callback;