ios 阿里百川的集成

2019-04-23  本文已影响0人  毛豆爱吃奶

最近的公司项目需要集成淘宝授权,所以跟阿里百川打了一段时间的交道。里面的教程写的比较笼统,能完成一些基本的集成功能。具体还要看公司的需求。

下面开始说下我的集成之路吧。

首先打开网址https://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.2650be485zZKWM&treeId=129&articleId=105648&docType=1看下基本的流程,例如申请应用获取appkey、配置URL Types、生成安全图片、导入一下必要的framework等都能在上面找到答案。

上述步骤都顺利进行完之后并且程序没有报错,就可以在需要授权的页面里面写授权代码了。当然中间也是走了不少弯路的,例如用webview加载授权地址一直让输入账号和密码等。废话不多说。

以下是我们项目里的授权代码:

if([senderisOn]){

        //淘宝授权

        ALBBSDK*albbSDK = [ALBBSDK sharedInstance];

        [albbSDK logout];//先退出上一个登陆的账号

        [albbSDK setAppkey:@"你的appkey"];

        [albbSDKsetAuthOption:NormalAuth];

        [albbSDKauth:selfsuccessCallback:^(ALBBSession*session){

            ALBBUser*user = [sessiongetUser];

            NSLog(@"session == %@, user.nick == %@,user.avatarUrl == %@,user.openId == %@,user.openSid == %@,user.topAccessToken == %@",session,user.nick,user.avatarUrl,user.openId,user.openSid,user.topAccessToken);

            [selfshowLoading];

            [[LGNetworkManagersharedManager]PostWithUrlString:[NSStringstringWithFormat:@"%@%@",API_HOST,OAUTH_VERIFY]parameters:@{@"tb_user_nick":user.nick}completion:^(idresponse,NSError*error) {

                [selfhidLoading];

                NSString*code = [NSStringstringWithFormat:@"%@", response[@"code"]];

                if([codeisEqualToString:@"200"]) {

                    LGTaobaoAuthViewController *web = [[LGTaobaoAuthViewController alloc] init];

                    web.url=self.authUrl;

                    web.title=@"淘宝授权";

                    [self.navigationControllerpushViewController:webanimated:YES];

                }else{

                    LGTaoBaoAuthFailView*failView = [[LGTaoBaoAuthFailViewalloc]initWithFrame:CGRectMake(0,0,SCREEN_WIDTH,SCREEN_HEIGHT)];

                    [[UIApplicationsharedApplication].keyWindowaddSubview:failView];

                }

            }];

        }failureCallback:^(ALBBSession*session,NSError*error){

            NSLog(@"session == %@,error == %@",session,error);

        }];

    }else{

        [self.tbSwitchsetOn:NO];

        ALBBSDK*albbSDK = [ALBBSDKsharedInstance];

        [albbSDKlogout];

        REMOVE_OBJECT(@"transition");

        REMOVE_OBJECT(@"taobaoAuth");

    }

有几个地方需要解释一下:

1、首先授权之前为什么先退出 [albbSDK logout]。这是因为授权之前需要清一下上次授权的信息。不然换一个淘宝号授权的话返回的还是上一个淘宝号的信息。

2、为什么还要请求个接口。因为后台要判断这个淘宝号是否绑定过平台其他账号,每个淘宝号只能绑定一个平台账号。

3、self.authUrl是后台返回的一个h5的授权地址(https://oauth.taobao.com/authorize?response_type=code&client_id=25963028&redirect_uri=http%3A%2F%2Ftyg1.haoshichengduo.com%2Ftaobao%2Fcallback&view=wap)。用webview把他加载出来即可。

4、还有一个就是LGTaobaoAuthViewController里面必须用uiwebview加载。如果用wkwebview加载会让你输入账号和密码(百度一下uiwebview和wkwebview的区别)。

出现这个授权页面,点击授权。到这授权就算成功了。

上一篇下一篇

猜你喜欢

热点阅读