supersdk

文档中心

文档中心

下载文档

GTaSDK


GTaSDK 主要为游戏发行海外地区(港澳台除外)提供登录功能。

一、获取当前登录用户的账号信息

接口描述:获取用户账号是否绑定的信息以及 token 值。

注意:选择是否需要遮罩,在 YES 时,调用该接口在界面上会有 loading 框,直到获取成功或失败,loading 框才会消失。

接口调用:

NSDictionary *parameters = @{
                                @"isMask":@(YES) // 是否加loading框提示,NO为不加loading框提示
                            };
[SuperSDK invoke:@"platform" funcName:@"accountInfoJson" parameters:parameters];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        
        if ([funcName isEqualToString:@"accountInfoJson"]) {// 获取当前登录用户的账号信息回调
           if (code==BCORE_SUCCESS) {
                NSDictionary *accountInfo = [retParam objectForKey:@"data"];
                NSLog(@"获取用户账号信息成功,账号信息为:%@", accountInfo);
            }
            else {
                NSLog(@"获取用户账号信息失败,原因为:%@", msg);
            }  
        }
    }
}

日志打印:

moduleName : platform,
funcName : accountInfoJson,
result : {
    "msg":"账号信息获取成功",
    "data":{
        "google":0,
        "gamecenter":0,
        "twitter":0,
        "yahoo":0,
        "korea":0,
        "facebook":0,
        "apple":0,
        "token":"3868561223eb8432b9bedc0e8597f0c4",
        "livespace":0,
        "gta":1
    },
    "code":1
}

二、弹出账号绑定页面

接口描述:根据 bindType 的对应的 value 值来跳转不同的绑定界面,绑定类型有 GTA、Facebook。

接口调用:

NSDictionary *parameters = @{
                              @"bindType":@"GTA" // bindType 取值有 GTA、Facebook
                            };
[SuperSDK invoke:@"platform" funcName:@"showAccountLinkJson" parameters:parameters];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        
        if ([funcName isEqualToString:@"showAccountLinkJson"]) {// 账号绑定回调
           if (code ==BCORE_SUCCESS) {
                NSString *accountType = [retParam objectForKey:@"data"];
                NSLog(@"绑定账号成功,绑定的账号类型为:%@", accountType);
            }
            else {
                NSLog(@"绑定账号失败,原因为:%@", desc);
            }
        }
    }
}

回调日志:

moduleName : platform,
funcName : showAccountLinkJson,
parameters : {
    "msg" : "账号绑定成功",
    "data" : "GTA",
    "code" : 1
}

三、获取 Facebook 登录的 FacebookID

接口描述:获取某用户在 facebook 中的用户 ID 号。

接口调用:

[SuperSDK invoke:@"platform" funcName:@"getfbid" parameters:nil];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        
        if ([funcName isEqualToString:@"getfbid"]) {// 获取facebook登录的facebookID回调
           if (code==BCORE_SUCCESS) {
                NSString * facebookID = [retParam objectForKey:@"data"];
                NSLog(@"获取facebookID成功,facebookID为:%@", facebookID);
            }
            else {
                NSLog(@"获取facebookID失败,原因为:%@", desc);
            }
        }
    }
}

日志打印:

moduleName : platform,
funcName : getfbid,
parameters : {
    "msg" : "获取facebookID成功",
    "data" : "305129846360359",
    "code" : 1
}

四、查询当前用户是否已绑定邮箱并返回邮箱

接口描述:查询当前用户是否已绑定邮箱。

接口调用:

[SuperSDK invoke:@"platform" funcName:@"queryBindEmail" parameters:nil];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        
        if ([funcName isEqualToString:@"queryBindEmail"]) {// 查询当前用户是否已绑定邮箱回调
           if (code==BCORE_SUCCESS) {
                NSString *email = [retParam objectForKey:@"data"];
                NSLog(@"当前账号已绑定邮箱,邮箱为:%@", email);
            }
            else {
                NSLog(@"当前账号尚未绑定邮箱");
            }
        }
    }
}

日志打印:

moduleName : platform,
funcName : queryBindEmail,
parameters : {
    "msg" : "该账号已绑定邮箱",
    "data" : "1003265311@qq.com",
    "code" : 1
}

五、查询 GTa 用户的用户名

接口描述:查询 GTa 用户的用户名。

接口调用:

[SuperSDK invoke:@"platform" funcName:@"queryGTaUserName" parameters:nil];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        
        if ([funcName isEqualToString:@"queryGTaUserName"]) {// 查询当前用户是否已绑定邮箱回调
           if (code==BCORE_SUCCESS) {
                NSString *username = [retParam objectForKey:@"data"];
                NSLog(@"查询的GTa账号用户名为:%@", username);
            }
            else {
                NSLog(@"没有查询到GTa账号用户名");
            }
        }
    }
}

日志打印:

moduleName : platform,
funcName : queryGTaUserName,
parameters : {
    "msg" : "queryGTaUserName success",
    "data" : "1003265311@qq.com",
    "code" : 1
}

六、打开绑定邮箱页面

接口描述:打开绑定邮箱页面让用户绑定密保邮箱。

接口调用:

[SuperSDK invoke:@"platform" funcName:@"showBindEmail" parameters:nil];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        
        if ([funcName isEqualToString:@"showBindEmail"]) {// 打开绑定邮箱页面回调
           if (code==BCORE_SUCCESS) {
                NSString *email = [retParam objectForKey:@"data"];
                SLog(@"当前账号绑定邮箱成功,邮箱为:%@", email);
            }
            else {
                NSLog(@"当前账号绑定邮箱失败,原因为%@", desc);
            }
        }
    }
}

日志打印:

moduleName : platform,
funcName : showBindEmail,
parameters : {
    "msg" : "绑定邮箱成功",
    "data" : "1003265311@qq.com",
    "code" : 1
}

七、游戏自定义设置 SDK 语言

接口描述:传入 GTa 语言参数可更换 GTa 和客服语言。

接口调用:

NSDictionary *parameters = @{
                               @"languagePath" : @"ko"  // 语言参数
                            };
[SuperSDK invoke:@"platform" funcName:@"setLanguagePath" parameters:parameters];

参数 支持以下几种语言(16种):

语言标识符 语言描述
ar 阿拉伯语
de 德语
en 英语
es 西班牙语
fr 法语
in 印尼语
ja 日文
ko 韩语
pl 波兰语
pt 葡萄牙语
ru 俄语
th 泰语
tr 土耳其语
zh 中文繁体
zh_cn 中文简体
vi 越南语

八、游客单登录

接口描述:游客单登录接口,自动创建并登录游客,不弹出游客登录框(静默登录)。

注意:该接口适用于 SuperSDK 母包,但需要将母包中的 SuperSDK.framework 更新到最新版本。

接口调用:

[SuperSDK invoke:@"platform" funcName:@"GuestSingleLogin" parameters:nil];

接口回调:

- (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result {
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// 平台模块回调
        if ([funcName isEqualToString:@"GuestSingleLogin"]) {// 游客单登录回调
            if (code == BCORE_SUCCESS) {
                //游客单登陆成功,需要将osdk_ticket拿到游戏服务器去验证一下,以确定用户信息的合法性
                NSDictionary *data  = [retParam objectForKey:@"data"]; // 回调data数据
                NSString *ticket = [data objectForKey:@"osdk_ticket"];//拿到ticket 去游戏服务器做登陆验证
            } 
            else {
                NSLog(@"游客单登陆失败,code=%d ,原因是 %@",code, msg);
            }
        }
    }
}

日志打印:

moduleName : platform,
funcName : GuestSingleLogin,
result : {
    "msg":"登录成功",
    "data":{
        "status":1,
        "msg":"登录成功",
        "osdk_ticket":"eyJvc2RrX2dhbWVfaWQiOiIxOTYzNzgwNzIiLCJ1c2VyX2lkIjoiMTY2NjkzOTc4MTY5NDQ2NjQ4NTY5ODU0MCIsImxvZ2luX3Nka19uYW1lIjoiZ3RhcmNhZGUiLCJjaGFubmVsX2lkIjoiMCIsImV4dGVuZCI6IjIxNDd8MjAxODQwMHwxODQ5IiwiYWNjb3VudF9zeXN0ZW1faWQiOiIwMDYwMDE1Iiwib3Nka191c2VyX2lkIjoiMDA2MDAxNV8xNjY2OTM5NzgxNjk0NDY2NDg1Njk4NTQwIiwiaXAiOiI0NS40MC42MC4yMTciLCJjb3VudHJ5IjoiMDAiLCJ0aW1lIjoxNjY5Njg4NjYxLCJzaWduIjoiYmM3NTBiY2U4YjkwODhkYTc2M2ViZGYzNmNhZjY4YjYifQ==",
        "userinfo":{
            "user_id":"1666939781694466485698540",
            "login_sdk_name":"gtarcade"
        }
    },
    "code":1
}

九、游客升级

接口描述:游客升级接口。

注意:该接口只有升级成功时有回调。

接口调用:

[SuperSDK invoke:@"platform" funcName:BCORE_FUNC_GUEST_UPGRADE parameters:nil];

十、第三方登录

接口描述:可选择第三方登录方式。

登录方式:GTALogin、FacebookLogin、AppleLogin。

接口调用:

NSDictionary *parameters = @{ 
                                @"otherFuncName" : @"GTALogin" // GTALogin、FacebookLogin、AppleLogin
                            };
[SuperSDK invoke:@"platform" funcName:@"otherFunction" parameters:parameters];

十一、获取商品信息

说明:参考 海外拓展接口

十二、用户隐私协议

接口描述:打开用户隐私协议。

注意:只支持日本地区。

接口调用:

NSDictionary *params = @{
                            @"type" : @"JP"
                        };
[SuperSDK invoke:@"platform" funcName:@"openUserAgreement" parameters:params];

接口回调:

+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
    // 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    // 2.回调参数判断
    if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
        if ([funcName isEqualToString:@"openUserAgreement"]) {// 获取打开协议的回调
           if (code==BCORE_SUCCESS) {
                NSDictionary *tmpDic = [retParam objectForKey:@"data"];
                NSLog(@"打开协议成功:%@", tmpDic);
            }else {
                NSLog(@"打开协议失败,原因为:%@", msg);
            }
        }
    }
}

日志打印:

moduleName : platform,
funcName : openUserAgreement,
result : {
  "msg" : "用户同意了协议",
  "data" : "JP",
  "code" : 1
}