RemoteConfigSDK包括两部分
ClientSDK采用JWT的认证模式。目前支持两种形式的JWT:
AuthTokenManager.GenerateAccessToken(string userID)的方式来使用第三方用户ID来获取JWT。ServerSDK采用AppId+AppSecret的认证模式
获取app统一的配置信息
获取和用户相关的配置信息
true,否则传入falseusing Unity.UOS.Config;
// 当Passport开启时,传入true,否则传入false
// RemoteConfigSDK.Initialize(false);
RemoteConfigSDK.Initialize(true);
// 当使用 Passport External Login 的情况下, 需要手动登录一下(仅需登录一次)
string userId = "1234"; // 需要登录的 UserId
string personalId = "5678"; // 可选 需要登录的 PersonalId
await AuthTokenManager.ExternalLogin(userId, personalId);
// 当不使用 UOS Passport 的情况下, 需要手动设置用户授权(仅需设置一次)
string userId = "1234"; // 需要授权的 UserId
await AuthTokenManager.GenerateAccessToken(userId);
var req = new GetPlayerSettingsRequest()
{
Keys = { "Alice", "Bob", "Charlie" },
Types_ = { ConfigType.Int, ConfigType.Bool, ConfigType.String },
};
var result = await RemoteConfigSDK.GetPlayerSettingsAsync(req);
if (result.IsSuccess())
{
GetPlayerSettingsResponse response = result.data;
// handle it
Debug.Log("success");
int i = 1;
foreach (var entry in response.Settings)
{
Debug.Log("item #" + i);
Debug.Log("key: " + entry.Key);
Debug.Log("val: " + entry.Value.Value);
Debug.Log("type: " + entry.Value.Type);
i++;
}
}
// 开发者自定义的结构体
[Serializable]
public class SampleUserAttributes
{
public string userID;
public string rank;
}
// 开发者自定义的结构体
[Serializable]
public class SampleAppAttributes
{
public string packageVersion;
public bool isDebugBuild;
}
var appAttributes = new SampleUserAttributes
{
userID = "1234",
rank = "king"
};
var userAttributes = new SampleAppAttributes
{
isDebugBuild = false,
packageVersion = "1.2.3"
};
var req = new GetPlayerOverridesRequest
{
UserId = "1234",
PersonaId = "5678",
IsDebugBuild = false,
PackageVersion = "1.2.3",
Attributes = ModelUtil.ConvertToAttributes(appAttributes, userAttributes)
};
var result = await RemoteConfigSDK.GetPlayerSettingsOverridesAsync(req);
if (result.IsSuccess())
{
GetPlayerOverridesResponse response = result.data;
// handle it
}
用户可以使用ModelUtil.ConvertToAttributes(object appAttributes, object userAttributes)来将自定义的AppAttributes和UserAttributes转化为SDK需要的Attributes类型(Google.Protobuf.WellKnownTypes.Value)