Skip to content

Ios linkload

【非必接】帐号绑定/载入/解绑第三方账户(Link/Load)

本文档将说明L提供的ID和社交账号的绑定功能(主要用于变更机种)。该功能可以使一个不同的设备返回相同的LID,从而使玩家可以在不同的设备上玩同一个游戏进度。

1, 一般海外游戏使用较多,中国游戏基本不需要使用,因为中国游戏基本最上层会套用一个强账号系统的渠道SDK,所以可以通过渠道强账号进行切换设备。

2, LCM支持L用户与第三方帐号(Facebook、一次性变更机种随机码、GameCenter等)的绑定,帮助用户在不同设备上玩同一个帐号,

3, 您可以通过User类的相关方法获取该用户支持的绑定方式,并通过link/load/unlink等方法进行绑定、载入与解绑操作。

4, 同时,还提供了linkOrLoad方法,来帮助开发者直接绑定或载入(用户若未绑定过该社交帐号,直接link并返回,若绑定过社交帐号,直接load并返回), linkOrLoad可以帮助开发者模拟使用第三方帐号登录,详细使用方式,可以参照Sample APP,Pickle

Link/Load概念效果图(仅供参考):

设备号与LID与社交号的关系图:


其中Store Account为设备号(google上是google play的acount, iOS上设备信息),Facebook Account是社交账号。

Link/Load支持的社交账号类型

商店类型
link/load方式
大陆

1.wechat(微信)

2.phoneno(手机号)

3.OneTimeCode(一次性变更机种随机码)

4. gamecenter(苹果only)

亚太

1. OneTimeCode(一次性变更机种随机码)

2. Facebook

3. gamecenter(苹果only)

4. line

获取支持的社交类型 Sample code from Pickle

/**
 * 【link/load】
 * 获取link/load支持的社交类型
 * 推荐App在初始化的时候就获取可绑定的社交类型,并在内存中储存,
 * 以便用户在需要绑定的时候可以直接操作
 **/
- (void)fetchLinkInfo:(LCMUser*)user{
    [user getLinkInfo:^(NSMutableArray *socialInfoArr, LCMError *error) {
        if (error) {
            NSLog(@"getLinkInfoError: %@",error);
        }else{
            //储存支持的社交绑定类型
            socialInfoArray = socialInfoArr;
            NSLog(@"linkInfo: %@",socialInfoArray);
        }
    }];
}

绑定社交帐号 Sample code from Pickle

//【link/load】
//App初始化时获取了所有支持的社交绑定的类型
//这里,将用户在UI界面选择的社交类型传入linkAccount方法进行绑定
LCMSocialInfo *socialInfo = [socialInfoArray objectAtIndex:buttonIndex-1];
//根据选择的社交类型,进行社交帐号的绑定
[ur linkAccount:socialInfo withCallback:^(NSString *socialType, NSString *socialAccount, LCMError *error) {
    if (error) {
        //错误处理,显示UI通知用户绑定失败
        NSLog(@"onLinkError: %@",error.errorMessage);
        UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Link error"
                                                                   message:error.errorMessage
                                                                  delegate:nil
                                                         cancelButtonTitle:@"OK"
                                                         otherButtonTitles:nil];
        [alert show];
    }else{
        //绑定成功,socialType会返回成功绑定的社交类型,socialAccount会返回绑定的社交帐号
        NSLog(@"onLinkSuccess, socialType: %@, socialAccount: %@",socialType,socialAccount);
        NSString* msg = [[NSString alloc] initWithFormat:@"SocialType: %@\nSocialAccount: %@",socialType,socialAccount];
        UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Link successed"
                                                                   message:msg
                                                                  delegate:nil
                                                         cancelButtonTitle:@"OK"
                                                         otherButtonTitles:nil];
        [alert show];
    }
}];

载入绑定的社交帐号 Sample code from Pickle

//【link/load】
//载入绑定的社交帐号
//同link接口,首先从App初始化时获得的社交支持类型获取用户的选择
LCMSocialInfo *socialInfo = [socialInfoArray objectAtIndex:buttonIndex-1];
//如果是onetimecode,即一次性绑定码,则需弹出UI界面,提示用户输入link时拿到的码
if([socialInfo.socialType isEqualToString:@"oneTimeCode"]){
    MyUIAlertView *alert = [[MyUIAlertView alloc] initWithTitle:@"Enter OneTimeCode"
                                                                message:@"  "
                                                               delegate:self
                                                      cancelButtonTitle:@"Cancel"
                                                      otherButtonTitles:@"OK", nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    alert.tag = ONE_TIME_CODE_INPUT_ALERT;
    alert.data = socialInfo;
    [alert show];
}else{
    //若非一次性绑定码,则调起loadAccount
    [self doLoadAccount:socialInfo];
}

解绑社交帐号 Sample code from Pickle

//【link/load】
//解绑社交帐号
//同link接口,首先从App初始化时获得的社交支持类型获取用户的选择
//只需传入社交类型,API会调起相应的社交SDK进行auth,并对auth完成的社交帐号进行解绑
LCMSocialInfo *socialInfo = [socialInfoArray objectAtIndex:buttonIndex-1];
//调用unlinkAccount接口进行解绑
[ur unlinkAccount:socialInfo withCallback:^(BOOL isSuccess, LCMError *error) {
    if (error) {
        //错误处理,提示用户解绑失败
        NSLog(@"onUnlinkError: %@",error.errorMessage);
        UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Unlink error"
                                                                   message:error.errorMessage
                                                                  delegate:nil
                                                         cancelButtonTitle:@"OK"
                                                         otherButtonTitles:nil];
        [alert show];
    }else{
        //解绑成功,同样提示用户
        NSLog(@"onUnlinkSuccess");
        NSString* msg = [[NSString alloc] initWithFormat:@"Unlink success!\nSocialType: %@",socialInfo.socialType];
        UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Unlink successed"
                                                                   message:msg
                                                                  delegate:nil
                                                         cancelButtonTitle:@"OK"
                                                         otherButtonTitles:nil];
        [alert show];
    }
}];

具体请参考

Pickle/ViewController.m

搜索【link/load】

Back to top