云账号与三方账号集成

更新时间:2017/01/24 访问次数:29712

三方授权登录

1. 前置操作

  1. 监听处理app的跳转
    - (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;
    
    }

2. 接入淘宝

  1. 添加AlibabaAuthExt.framework和AlibabaAuthSDK.framework的依赖

  2. 在TARGETS->Info->URL Types下添加URL Schemes,格式是tbopen+appkey

  3. info.plist增加LSApplicationQueriesSchemes,如下图所示
    image

3. 接入微博,微信,QQ

  1. 获取友盟apkey。云账号三方登录模块是在友盟share SDK基础做了一层集成,如果你尚未在友盟注册账号,需要先注册,注册之后登录你的账号,点击添加新应用,完成新应用填写之后,将进入应用管理页面。在该页面就能得到Appkey。目前云账号接入的友盟SDK版本是6.0

  2. 申请第三方平台APPID。目前云账号支持淘宝,微博,微信,QQ登录,除了淘宝登录,其他三种平台都需要申请APPID,申请平台APPID请直接参考友盟文档申请第三方账号

  3. 配置scheme。在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,则需要在plist文件中添加。获取各个平台appkey或者appid的方法可以参考分享详细文档绑定各个平台部分,各个平台的url scheme格式如下表:
















    平台
    scheme设置格式
    新浪微博 “wb”+新浪appkey,例如“wb126663232”
    微信 微信应用appId,例如“wxd9a39c7122aa6516”
    QQ 需要添加两个URL schemes 1. “QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”,注意大写,生成十六进制方法:点击链接,2.“tencent“+腾讯QQ互联应用Id,例如“tencent100424468"

  4. 初始化友盟

    #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"];
    }

4. 授权回调处理

  1. 设置授权回调处理的delegate(ALBBOpenAccountSSODelegate)

    [ALBBService(ALBBOpenAccountUIService) setOpenAccountSSODelegate:self];
  2. 实现代理方法

    - (void) openAccountSSOLoginError:(NSError *)error Session:(ALBBOpenAccountSession *)currentSession {
        if(!error) {
           [MyAlertView alert:[NSString stringWithFormat:@"登录成功 \n token:%@ \n user:%@", [currentSession getAuthToken], [currentSession getUser]]];
        } else {
           NSLog(@"%@",error);
        }
    }

5. 自建UI进行三方授权登录

接入方可以不使用loginViewController提供的按钮进行三方授权登录,而是自建UI进行授权登录

  1. 调用如下方法(ALBBOpenAccountSSO.h),其中delegate需要接入方自行维护,openaccount framwork不进行强引用

    - (void)oauthWithPlatForm:(OAAuthPlatformType)sType
               presentingVC:(UIViewController *)presentingController
                  delegate:(id<SSODelegate>)delegate;
  2. 实现代理方法(ALBBOpenAccountSSO.h/SSODelegate)

    - (void)openAccountOAuthError:(NSError *)error 
                    Session:(ALBBOpenAccountSession *)session;

6. 绑定三方账号

当用户登录后,可以手动绑定第三方账号体系

  1. 调用如下方法(ALBBOpenAccountSSO.h),其中delegate需要接入方自行维护,openaccount framwork不进行强引用。此方法调用必须有登录态,否则error code会返回555

    - (void)oaBindWithPlatForm:(OAAuthPlatformType)sType
                presentingVC:(UIViewController *)presentingController
                   delegate:(id<SSODelegate>)delegate;
  2. 实现代理方法(ALBBOpenAccountSSO.h/SSODelegate),其中ALBBOpenAccountSSOLink是第三方账号返回的信息

    - (void)openAccountBindError:(NSError *)error 
                   Session:(ALBBOpenAccountSession *)session 
                 ThirdInfo:(ALBBOpenAccountSSOLink *)link;

7. 查询openaccount账号与第三方账号绑定情况

  1. 调用如下方法(ALBBOpenAccountSSO.h),此方法调用必须有登录态,否则error code会返回555
    - (void)getThirdBindInfoWithCallback:(void (^)(NSArray<ALBBOpenAccountSSOLink *> *accountLinks,NSError *error))callback;

FAQ

关于此文档暂时还没有FAQ
返回
顶部