Android
本文旨在介绍如何设置 VK 身份验证,让您的游戏可以使用 Player Network 登录鉴权服务通过 VK 渠道登录。
前提条件
1. 在 VK 开发者网站上设置您的游戏
1. 创建 VK 应用
以下信息最后更新于2024年2月5日,请以 VK 开发者网站 最新信息为准。
目前 VK 开发者网站 已不能创建 VK 应用,按照以下步骤可跳转到 VK ID 开发者网站。
Player Network SDK 暂不支持 VK ID,详细信息及版本支持计划请联系 Player Network 助手。
在 VK 开发者网站 登录或注册账号。
进入 Create an app 页面,输入相应信息。
- Title:应用名称
- Platform:应用的类型
点击 Go to service,跳转到 VK ID 开发者网站。
2. 配置应用
输入应用信息
访问 VK 开发者网站。
在相应应用的 Information 页面输入应用信息。
点击 Save,保存输入的信息。
启用 OpenAPI
- 启用 OpenAPI。
- 添加以下基域:
- dev-common-web.intlgame.com
- debug-common-web.intlgame.com
- test-common-web.intlgame.com
- common-web.intlgame.com
获取 Android 指纹
要获取 Android 指纹,请按照 Get the SHA1 Value for Android 中的说明操作。
SDK 设置
进入应用的 Settings 页面。
在 SDK settings 部分,输入 App Bundle ID for iOS、Package name for Android、以及 Signing certificate fingerprint for Android。
获取 App ID、Secure key 和其他信息
进入 App 的 Settings 页面,获取 App ID 和其他信息。
步骤1:为 VK 登录配置 SDK
在
AndroidManifest
文件中,确保添加了所需权限。VK 需要访问网络。<uses-permission android:name="android.permission.INTERNET"/>
在
Assets/Plugins/Android/INTLVK.androidlib/res/values
下的vk_integers.xml
文件中,添加以下配置。<integer name="com_vk_sdk_AppId">your_app_id</integer>
将
your_app_id
替换为已注册的 VK App ID。打开项目的 INTLConfig.ini 文件:
[Android LifeCycle]
LIFECYCLE = VK
[VK]
VK_APP_ID = {INTL_VK_APP_ID}- 在
LIFECYCLE
中添加 VK。有关更多信息,请参见 SDK 环境。 - 将
{INTL_VK_APP_ID}
替换为已注册的 VK App ID。
- 在
步骤2:添加 VK 登录
注册登录相关回调。
- Unity
- Unreal Engine
// Add callbacks
public void AddAuthObserver()
{
INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
}
// Remove callbacks
public void RemoveAuthObserver()
{
INTLAPI.RemoveAuthResultObserver(OnAuthResultEvent);
}
// Process the INTLAuthResult callback
public void OnAuthResultEvent(INTLAuthResult ret)
{
Debug.Log($"MethodID: {ret.MethodId}");
string methodTag = "";
if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_LOGIN)
{
methodTag = "Login";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_BIND)
{
methodTag = "Bind";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_AUTOLOGIN)
{
methodTag = "AutoLogin";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_QUERY_USER_INFO)
{
methodTag = "QueryUserInfo";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_GET_AUTH_RESULT)
{
methodTag = "GetAuthResult";
}
}C++ Event Handling (above v1.15)
//configure callback
FINTLAuthEvent authEvent;
authEvent.AddUObject(this, &OnAuthResult_Implementation);
UINTLSDKAPI::SetAuthResultObserver(authEvent);
// Remove callbacks
UINTLSDKAPI::GetAuthResultObserver().Clear();void OnAuthResult_Implementation(FINTLAuthResult ret)
{
UE_LOG(LogTemp, Warning, TEXT("MethodID: %d"), ret.MethodId);
}Unreal Event Handling
void OnAuthResult_Implementation(FINTLAuthResult ret)
{
UE_LOG(LogTemp, Warning, TEXT("MethodID: %d"), ret.MethodId);
}调用
AutoLogin
接口自动登录。- Unity
- Unreal Engine
INTLAPI.AutoLogin();
UINTLSDKAPI::AutoLogin();
在自动登录失败时调用
Login
接口使玩家手动登录。- Unity
- Unreal Engine
INTLAPI.Login(INTLChannel.VK);
UINTLSDKAPI::Login(EINTLLoginChannel::kChannelVK);
与游戏后台同步客户端身份验证状态,等待最终验证结果。
步骤3:验收登录功能
在 Player Network SDK 日志中搜索关键字 "AuthResult" 确认渠道名称和 OpenID 是否正确返回。如果正确,则表明集成配置成功,登录功能已成功添加。
如果接入过程中遇到问题,请参见 常见问题。