美文网首页
手淘登录授权(非官方)

手淘登录授权(非官方)

作者: pipa | 来源:发表于2017-03-20 21:26 被阅读683次

    友盟的第三放登录中并没有淘宝的授权,所以直接去阿里百川下载SDK和集成文档。

    ** 背景 **
    公司产品需要使用手淘授权,但并不使用淘宝的商业功能。

    ** 必备素材 **

    • SDK。 当前最新SDK版本为AlibcTradeSDK-3.1.1.93.zip 33.5 MB
    • 安全图片。 23K

    ** 文档地址 **
    V3.1文档

    首先,推荐使用Pod的方式引入,对于已经使用pod管理第三方库的项目来说,优势很明显。
    但是劣势就是集成了全家桶。而且根据文档中的方式,pod一直报错,从pod v1.0.0 ~ v1.2.0,均报错。其中有一个 search json的错误,这个应该算是 cocoapods的bug,按照pod的提示,删除就好。

    但是运行 pod install 依然有错误。应该是 pod repo add AliBCSpecs http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git这个repo 的错误.

    不知道为什么没有人提出这个错误。工期原因,只能放弃pod导入,手动引入framwork。

    下载SDK

    具体说明

    • 基础安全组件(必选)
    • UT(必选)
    • 登陆授权(必选)
    • 基础电商组件(必选)
    • mtop(必选)
    • 登陆绑定(可选)
    • applink(可选)
    • alipay:(可选)
    • 人机识别–安全(可选)
    • 优惠券(可选)
    • 一键加购(可选)

    真的是全家桶...

    集成

    导入需要的库 和 资源

    • AlibabaAuthSDK.framework (247K)
    • AlibabaAuthSDK.bundle

    需要在工程中设置 库的路径

    导入头文件

    #import <AlibabaAuthSDK/ALBBSDK.h>

    初始化

    ******* 为AppKey ,从控制台查找

    // ALBBSDKInit() 必须在主线程初始化
    dispatch_main_asyn {
      ALBBSDK.sharedInstance().ALBBSDKInit()               
      ALBBSDK.sharedInstance().loginByURL(NSURL(string: "tbopen********"))
      ALBBSDK.sharedInstance().setAppkey("******")
      //     唤起 (客户端 & H5)授权
      ALBBSDK.sharedInstance().setAuthOption(AuthOption(rawValue: 2))
    
    #if DEBUG
      ALBBSDK.sharedInstance().openDebugLog()
    #endif
     }
                
    

    授权

      // 获取rootViewController
      let app = UIApplication.sharedApplication().delegate
      guard let window = app?.window , let rootCtrol = window.rootViewController else {
        DDLogError("error! cannot find rootController, oauth failed")
        return
      }
            
    // 调取淘宝授权
       ALBBSDK.sharedInstance().auth(rootCtrol,
                                          successCallback: { [unowned Service] (session) in
                                            Service.taobaoLoginSucess(session)
                },
                                          failureCallback: { [unowned Service](session, error) in
                                            Service.taobaoLoginError(error)
                })
    

    处理手淘客户端回调

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url处理回调

    以下是swift写法.OC 自行转换

    class func handleOpenURL(url: NSURL!) -> Bool {
            let instance = Service
            var handled   = false {
                didSet {
                    if handled == true {
                        DDLogVerbose("third share sdk can handel this url: \(url.scheme)")
                    }
                }
            }
            ALBBSDK.sharedInstance().loginByURL(url)
            ...
    }
    

    配置 Project

    参考下边图片,设置标示:

    Paste_Image.png Paste_Image.png

    如果环境一样的话,经过以上步骤,就可以实现淘宝登录,经测试,手淘和淘宝HD 均无异常。


    补充两个错误码

    • error.code == 1003 用户取消授权 (点击手淘返回按钮,取消授权)
    • error.code == 104 用户取消授权 (点击状态栏左上角返回之前App)
    • error.code == 101 H5用户取消授权 (网页授权取消)

    PS: 如果想找专门授权的文档的,还是放弃吧。

    相关文章

      网友评论

          本文标题:手淘登录授权(非官方)

          本文链接:https://www.haomeiwen.com/subject/bcbinttx.html