跳到主要内容

Android

本文旨在介绍如何设置 VK 身份验证,让您的游戏可以使用 Player Network 登录鉴权服务通过 VK 渠道登录。

前提条件

1. 在 VK 开发者网站上设置您的游戏

1. 创建 VK 应用

说明

以下信息最后更新于2024年2月5日,请以 VK 开发者网站 最新信息为准。

警告

目前 VK 开发者网站 已不能创建 VK 应用,按照以下步骤可跳转到 VK ID 开发者网站。
Player Network SDK 暂不支持 VK ID,详细信息及版本支持计划请联系 Player Network 助手。

  1. VK 开发者网站 登录或注册账号。

  2. 进入 Create an app 页面,输入相应信息。

    • Title:应用名称
    • Platform:应用的类型
  3. 点击 Go to service,跳转到 VK ID 开发者网站。

    图片:VK Create App

2. 配置应用

输入应用信息
  1. 访问 VK 开发者网站

  2. 在相应应用的 Information 页面输入应用信息。

    图片:VK information

  3. 点击 Save,保存输入的信息。

启用 OpenAPI

图片:VK app base domain

  1. 启用 OpenAPI。
  2. 添加以下基域:
    • 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 中的说明操作。

图片:VK SHA1

SDK 设置
  1. 进入应用的 Settings 页面。

  2. SDK settings 部分,输入 App Bundle ID for iOSPackage name for Android、以及 Signing certificate fingerprint for Android

    图片:VK SDK Setting

获取 App ID、Secure key 和其他信息

进入 App 的 Settings 页面,获取 App ID 和其他信息。

图片:Player Network 设置

  1. 获取 Player Network 控制台登录账号
  2. 为游戏创建新项目,或加入已有项目
  3. 下载 SDK
  4. 接入 SDK
  5. 在 Player Network 控制台添加 VK 为业务的登录鉴权方式

步骤1:为 VK 登录配置 SDK

  1. AndroidManifest 文件中,确保添加了所需权限。VK 需要访问网络。

    <uses-permission android:name="android.permission.INTERNET"/>
  2. 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。

  3. 打开项目的 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 登录

  1. 注册登录相关回调。

    // 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";
    }
    }
  2. 调用 AutoLogin 接口自动登录。

    INTLAPI.AutoLogin();
  3. 在自动登录失败时调用 Login 接口使玩家手动登录。

    INTLAPI.Login(INTLChannel.VK); 
  4. 与游戏后台同步客户端身份验证状态,等待最终验证结果。

步骤3:验收登录功能

在 Player Network SDK 日志中搜索关键字 "AuthResult" 确认渠道名称和 OpenID 是否正确返回。如果正确,则表明集成配置成功,登录功能已成功添加。

如果接入过程中遇到问题,请参见 常见问题