跳到主要内容

iOS

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

警告

从 2024 年春季开始,对于需更新或上传至 Apple App Store Connect 的应用,开发者需明确 注明使用原因,以展示该应用如何使用 required reason API(需提交使用原因的 API)。更多信息,请参见 即将发布的第三方 SDK 要求

由于 Kakao 的隐私清单尚未公布,目前 Player Network SDK 隐私清单中不包含对应的内容,详见 iOS 17 隐私清单

前提条件

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

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

  1. 进入 Kakao Developers

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

    图片:Kakao Add Application

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

警告

如果点击 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

警告

Kakao SDK 仅与 iOS SDK 11 及以上版本兼容。

所需条件

IDE:Xcode 13.0 或更高版本
iOS:iOS 11.0 或更高版本

  1. info.list 中,添加以下游戏配置:

    <key>KakaoGameConfiguration</key>
        <dict>
            <key>AppId</key>
            <string>{INTL_KAKAO_APP_ID}</string>
            <key>AppSecret</key>
            <string>{INTL_KAKAO_APP_SECRET}</string>
            <key>AppVersion</key>
            <string>1.0.0</string>
            <key>DebugLevel</key>
            <string>verbose</string>
            <key>ServerType</key>
            <string>real</string>
        </dict>
  2. info.list 中,添加以下 LSApplicationQueriesSchemes 代码:

    <key>LSApplicationQueriesSchemes</key> 
    <array><string>com.kakaogames.sdk</string>
    <string>kakao[AppSecret]</string>
    <string>kakaokompassauth</string>
    <string>storykompassauth</string>
    <string>kakaolink</string>
    <string>kakaotalk-4.5.0</string>
    <string>kakaotalk-2.9.5</string>
    <string>kakaotalk-3.0.0</string>
    <string>kakao3rdauth</string>
    <string>kakaostory-2.9.0</string>
    <string>kakaotalk</string>
    </array>

    [AppSecret] 替换为 获取 Kakao 信息中的本地应用密钥

  3. 设置 URL 方案。

    图片:URL Scheme

    为 KakaoTalk 添加以下模式代码,以打开游戏应用:

            <dict>
                <key>CFBundleTypeRole</key>
                <string>Editor</string>
                <key>CFBundleURLName</key>
                <string></string>
                <key>CFBundleURLSchemes</key>
                <array>
                    <string>kakao[AppSecret]</string>
                </array>
         </dict>
            <dict>
                <key>CFBundleTypeRole</key>
                <string>Editor</string>
                <key>CFBundleURLSchemes</key>
                <array>
                    <string>kakaogame[AppId]</string>
                </array>
            </dict>

步骤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 是否正确返回。如果正确,则表明集成配置成功,登录功能已成功添加。

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