开发指南
Combo SDK 提供 世游通行证 账号登录方式,并支持游客登录和多种 第三方 IdP(微信、TapTap、Google Account、Facebook 等)登录方式。
游戏可以针对不同的发行版本合理的组合使用不同的登录方式。运营同学可以在 世游发行平台 Console > 发行版本 中启用不同的登录方式。
集成前准备
登录
警告
Login
方法用于执行 Combo SDK 的登录操作- 如果登录失败,建议对相应的错误进行处理,例如给出错误提示,或者重新尝试登录
支持平台
方法签名
public static void Login(Action<Result<LoginResult>> callback);
代码示例
Show Code
ComboSDK.Login(r =>
{
if (r.IsSuccess)
{
var loginResult = r.Data;
var comboId = loginResult.comboId;
var identityToken = loginResult.identityToken;
}
else
{
var error = r.Error;
if (error.Code == ErrorCode.UserCancelled)
{
Debug.LogError("用户取消登录");
return;
}
Debug.LogError("登录失败:" + error.DetailMessage);
}
});
方法参数
Parameters | Required | Type | Description |
---|---|---|---|
callback | True | Action<Result<LoginResult>> | 登录完成后的回调方法,用于接收 Login 的结果 |
LoginResult
Properties | Supported Platforms | Type | Description |
---|---|---|---|
loginInfo | LoginInfo | Combo SDK 相关登录信息 |
Error
Error | Supported Platforms | Description | |
---|---|---|---|
UNKNOWN_ERROR | 未知错误 | ||
USER_CANCELLED | 用户主动取消操作 | ||
NETWORK_ERROR | 网络错误 | ||
SERVER_ERROR | 服务端错误 | ||
SYSTEM_ERROR | 系统错误,如 SignInWithApple 失败 | ||
THIRD_PARTY_ERROR | 第三方 SDK 错误 |
登出
信息
Logout
方法用于执行 Combo SDK 的登出操作,此方法通常在用户点击 "登出" 按钮时调用- 如果登出失败,建议对相应的错误进行处理,例如给出错误提示,或者重新尝试登出
支持平台
方法签名
public static void Logout(Action<Result<LogoutResult>> callback);
代码示例
Show Code
ComboSDK.Logout(r =>
{
if (r.IsSuccess)
{
var comboId = r.Data.comboId;
}
else
{
var error = result.Error;
Debug.LogError("登出失败:"error.DetailMessage);
}
});
方法参数
Parameter | Required | Type | Description |
---|---|---|---|
callback | True | Action<Result<LogoutResult>> | 登出完成后的回调方法,用于接收 Logout 的结果 |
LogoutResult
Properties | Supported Platforms | Type | Description |
---|---|---|---|
comboId | string | 供游戏使用的聚合用户标识 |
获取用户信息
警告
GetLoginInfo
方法用于获取 Combo SDK 的登录信息。请确保在登录成功后再调用此方法,否则返回 null
。
支持平台
方法签名
public static LoginInfo GetLoginInfo();
代码示例
Show Code
public class Demo : MonoBehaviour
{
//...
void GetLoginInfo()
{
LoginInfo loginInfo = ComboSDK.GetLoginInfo();
var comboId = loginInfo.comboId;
var identityToken = loginInfo.identityToken;
Debug.Log("Combo ID: " + comboId + ", Identity Token: " + identityToken);
}
//...
}
返回值
返回 LoginInfo 对象。
LoginInfo
Properties | Type | Description |
---|---|---|
comboId | string | 供游戏使用的聚合用户标识 |
identityToken | string | 为 Combo ID 分配的 JWT,游戏服务端验证用户身份的标识 |
踢出游戏
警告
OnKickOut
方法用于注册 Combo SDK 的用户踢出回调。它在服务端需要强制让用户下线时触发。游戏客户端需要注册这个回调,以确保在收到强制下线通知时,能够立即执行相应的操作,如通知用户当前状态,保存游戏进度,以及进行必要的资源清理。OnKickOut
应在游戏初始化完成后尽早注册其回调,这样可以保证在任何必要的情况下,都能够及时接收并处理强制下线通知。
支持平台
方法签名
public static void OnKickOut(Action<Result<KickOutResult>> callback);
代码示例
Show Code
ComboSDK.OnKickOut(r =>
{
if (r.IsSuccess)
{
var result = r.Data;
if (result.shouldExit)
{
//TODO: 处理退出游戏的逻辑
Application.Quit();
}
else
{
//TODO: 处理登出游戏的逻辑
GameClient.Logout();
}
}
else
{
var err = r.Error;
Debug.Log("踢出失败: " + err.DetailMessage);
}
});
方法参数
Parameter | Required | Type | Description |
---|---|---|---|
callback | True | Action<Result<KickOutResult>> | 踢出游戏的回调方法,用于接收踢出事件并进行处理 |
KickOutResult
Properties | Supported Platforms | Type | Description |
---|---|---|---|
shouldExit | Bool | 是否需要退出游戏 App |