美文网首页
ios 阿里百川的集成

ios 阿里百川的集成

作者: 毛豆爱吃奶 | 来源:发表于2019-04-23 14:25 被阅读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的区别)。

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

    相关文章

      网友评论

          本文标题:ios 阿里百川的集成

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