跳到主要内容

Android

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

前提条件

1. 在 Kakao Developers 上配置 Kakao 应用
1. 创建 Kakao 应用

前往 Kakao Developers 注册开发者账号,并联系 Player Network 管理员授权账号的企业认证。

  1. 进入 Kakao Developers

  2. 创建应用并输入基本应用信息。

    图片:Kakao Add Application

  3. 输入 Android 相关的应用配置。

警告

如果点击 KakaoTalk 消息需要将用户重定向到一个 URL,请将 URL 域名注册到 Web 平台中的 网站域名

图片:Kakao Platforms

2. 为应用启用 Kakao 登录
  1. Kakao 登录激活状态设置为 ON

  2. 重定向 URI 中添加 https://kauth.kakao.com/oauth

    图片:Kakao Activation

  3. 根据下图设置登录权限和范围。
    例如,登录后访问昵称和个人头像的范围。

    图片:Kakao Consent

3. 检索应用信息

进入 My Application > App Settings > Summary,查看应用的基本信息。

图片:Kakao Summary

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

步骤1:为 Kakao 登录配置 SDK

注意
所需条件

JDK: JDK8+
AndroidSdk: Android12.0(API31)
OS: Android 5.0, API 21 或更高版本
Gradle 版本: 6.1.1+
Android Gradle 插件版本: 3.6.1+

注意

如果 minSdkVersion 不匹配,请在 AndroidManifest.xml 中添加以下代码:

<uses-sdk tools:overrideLibrary="com.kakaogame.kakao,com.kakao.sdk.v2.story,com.kakao.sdk.v2.partner.user,
com.kakao.sdk.v2.user,com.kakao.sdk.v2.partner.auth,com.kakao.sdk.v2.partner.talk,
com.kakao.sdk.v2.talk,com.kakao.sdk.v2.auth,com.kakaogame,com.kakaogame.common,com.kakao.sdk.v2.partner,
com.kakao.sdk.v2.link,com.kakao.sdk.v2.template,com.kakao.sdk.v2.network,
com.kakao.sdk.v2.common,com.kakao.sdk.v2.partner.friend" />
  1. Assets/Plugins/Android/INTLKaKao.androidlib/assets 下的 kakao_game_sdk_configuration.xml 文件中。

    <?xml version="1.0" encoding="UTF-8"?> 
    <configuartion-list>
    <configuration key="appId" value="" />
    <configuration key="appSecret" value="" />
    <configuration key="debugLevel" value="verbose" />
    </configuartion-list>
  2. AndroidManifest 文件中,在配置好的启动界面中添加以下代码,以确保玩家点击 KakaoTalk 消息中的应用信息后可以打开游戏。

    <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="kakao{INTL_KAKAO_APP_SECRET}" android:host="kakaolink"
    tools:ignore="AppLinkUrlError" />
    </intent-filter>
    <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="kakao{INTL_KAKAO_APP_SECRET}" android:host="kakaostory"
    tools:ignore="AppLinkUrlError" />
    </intent-filter>

    {INTL_KAKAO_APP_SECRET} 替换为 获取 Kakao 信息 中的 本地应用密钥

  3. 打开项目的 INTLConfig.ini 文件:

    [Android LifeCycle]
    LIFECYCLE = KaKao
    [KaKao]
    KAKAO_APP_SECRET = {INTL_KAKAO_APP_SECRET}
    KAKAO_APP_ID = {INTL_KAKAO_APP_ID}

步骤2:添加 Kakao 登录

警告

网页登录请在支持 Chrome Custom Tabs 的浏览器上进行验证,例如 Chrome 浏览器。

  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.KaKao); 
  4. 与游戏后台同步客户端身份验证状态,等待最终验证结果。

步骤3:验收登录功能

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

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