iOS
请勿自行接入。TikTok 渠道需与 TikTok 侧建立正式合作后方可注册应用、获取用于接入的配置。如需接入,请先咨询业务接口人。
本文旨在介绍如何设置 TikTok 身份验证,让您的游戏可以使用 Player Network 登录鉴权服务通过 TikTok 渠道登录。
前提条件
1. 在 TikTok 开发者平台上配置应用
1. 注册并登录 TikTok 开发者账号
使用邮箱在 TikTok 开发者平台注册并登录。
3. 创建 TikTok App
- 打开 Apps ,点击 Connect an app。

- 选择 个人开发者 或 公司组织。
- 输入 App name,点击 Confirm 完成创建。

4. 配置 App 基本信息
- 填写应用基本信息:图标、名称、应用类型、描述信息、服务条款、隐私条款。
- Platforms 勾选 iOS。

- 在 Configure for iOS 填入 iOS 包相关信息(找开发同学提供)。

5 服务条款 & 隐私政策 URL 域名认证
TikTok 要求对你填写的 ToS/隐私政策 URL 的域名进行认证,通过后才可以保存并提交审核。
- 点击 Verify URL properties。

- 在弹窗中点击 Verify properties。

- 选择 URL prefix,输入域名 URL,点击 Verify。

- 下载 TikTok 生成的签名文件(例如:
tiktokxxxx.txt)。
- 联系运维/网站同学将该文件上传到对应域名的服务器,使其可通过浏览器直接访问下载。
- 上传完成后回到 TikTok 页面点击 Verify 完成最终认证。
- 若失败:请检查签名文件是否可在浏览器正常下载(路径/权限/CDN 缓存等)。
6. App 审核信息
- 详细描述游戏如何使用TikTok Login Kit登录功能。
- 录制一个游戏使用TikTok授权登录的完整视频,由于当前并未完成TikTok接入,可以先临时上传任意视频,后续提交审核时重新提供视频即可。

7. 配置 Products:启用 Login Kit
- 进入 Products,点击 Add products。

- 点击 + Add,添加 Login Kit。

- 为 Login Kit 配置:
- iOS Universal Link(找开发同学提供)

- iOS Universal Link(找开发同学提供)
- 将链接替换为游戏的 Deep Link,但请保留回调路径后缀:
.../pnt/tiktok/logincallback
8. Scopes 配置
- 添加 Login Kit 后,TikTok 会自动添加
user.info.basic权限。 - 目前一般不需要额外添加其它 Scopes(除非业务明确需要)。
9. 保存 App 配置
- 点击右上角 Save 保存配置。
- 由于尚未完成接入与联调,请暂时不要点击 “Submit for review”。
- 若保存失败,请根据页面错误提示补齐必填项(以上步骤基本均为必需项)。

10.(推荐)创建 Sandbox 并添加测试用户
提交审核前的开发联调建议在 Sandbox 环境进行。
- 在页面左上角切换到 Sandbox,点击 Create Sandbox。

- 输入 Sandbox 名称,并勾选 Clone from Production or an existing Sandbox,点击 Confirm。

- 在 Sandbox 中点击 Add account 添加测试 TikTok 账号:
- 登录成功后,该账号会进入 Target Users 列表
- 只有 Target Users 内的账号才能进行 TikTok 登录测试

- 获取 Player Network 控制台登录账号。
- 为游戏创建新项目,或加入已有项目。
- 下载 SDK。
- 接入 SDK。
- 在 Player Network 控制台添加 TikTok 为业务的登录鉴权方式。
步骤1:为 TikTok 登录配置 SDK
-
打开项目的 INTLConfig.ini 文件:
INTLConfig.ini[INTL environment]
# WARNING: You should change this URL to the production environment when you release your game.
INTL_URL = https://test.intlgame.com
GAME_ID = {INTL_GAME_ID}
SDK_KEY = {INTL_SDK_KEY}
[INTL Log]
LOG_LEVEL = 1
LOG_CONSOLE_OUTPUT_ENABLE = 1
LOG_FILE_OUTPUT_ENABLE = 1
LOG_ENCRYPT_ENABLE = 0
LOG_COMPRESS_ENABLE = 0
[TikTok]
TIKTOK_APP_ID = {INTL_TIKTOK_APP_ID}
TIKTOK_CLIENT_KEY = {INTL_TIKTOK_CLIENT_KEY}
TIKTOK_REDIRECT_URI = {INTL_TIKTOK_REDIRECT_URI}
TIKTOK_REWARD_BIND_URI = {INTL_TIKTOK_REWARD_BIND_URI}
TIKTOK_SCOPE = user.info.profile- 将 SDK 后端环境
INTL_URL设置为https://test.intlgame.com。 - 将
{INTL_GAME_ID}和{INTL_SDK_KEY}替换为 Player Network 控制台 分配的GAME_ID和SDK_KEY的值。 - 设置
LOG_LEVEL = 1、LOG_CONSOLE_OUTPUT_ENABLE = 1、LOG_FILE_OUTPUT_ENABLE = 1、LOG_ENCRYPT_ENABLE = 0和LOG_COMPRESS_ENABLE = 0,以便在不加密或压缩输出的情况下输出控制台日志和日志文件。 - 将
{INTL_TIKTOK_APP_ID}替换为 TikTok 分配的 App ID。 - 将
{INTL_TIKTOK_CLIENT_KEY}替换为 TikTok 分配的 Client Key,用于标识游戏在 TikTok 登录流程中的应用身份。 - 将
{INTL_TIKTOK_REDIRECT_URI}替换为 TikTok 授权完成后回调到游戏的 Redirect URI。回调路径必须以/pnt/tiktok/logincallback结尾。 - 将
{INTL_TIKTOK_REWARD_BIND_URI}替换为 TikTok 发奖绑定流程使用的 Reward Bind URI。回调路径必须以/pnt/tiktok/rewardsbind结尾。如未使用发奖绑定功能,可留空。 - 移动端 SDK 会自动添加默认 scope
user.info.basic、video.list和game.entitlement.management。TIKTOK_SCOPE仅用于配置业务额外需要的权限,例如user.info.profile。
- 将 SDK 后端环境
-
在项目的
Info.plist中添加 TikTok 相关配置:Info.plist<key>TikTokClientKey</key>
<string>{INTL_TIKTOK_CLIENT_KEY}</string>
<key>TTGPAppID</key>
<string>{INTL_TIKTOK_APP_ID}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tiktokopensdk</string>
<string>tiktoksharesdk</string>
<string>snssdk1233</string>
<string>snssdk1180</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>TikTok</string>
<key>CFBundleURLSchemes</key>
<array>
<string>m{INTL_TIKTOK_CLIENT_KEY}</string>
</array>
</dict>
</array>- 将
{INTL_TIKTOK_CLIENT_KEY}和{INTL_TIKTOK_APP_ID}替换为 TikTok 提供的值。 LSApplicationQueriesSchemes用于检测 TikTok 应用是否安装并在需要时拉起应用。TTGP SDK 会检查snssdk1233与snssdk1180;tiktokopensdk与tiktoksharesdk用于兼容 TikTok Open SDK 的回退流程。CFBundleURLTypes是必需的。TikTok 的 URL Scheme 必须严格配置为m<CLIENT_KEY>,即字母m加上你的 TikTok Client Key。m前缀是必需的:iOS App Store 审核(错误码 ITMS-90158)会拒绝完全由数字组成的 URL Scheme,且 TikTok SDK 会将此 Scheme 作为回退回调路径。
- 将
-
配置 Universal Link 回调,使 TikTok 能够通过 HTTPS 将授权结果返回给游戏。由于
TIKTOK_REDIRECT_URI是一个 HTTPS 链接,iOS 会通过 Universal Link 路由回调:-
在应用的 Associated Domains 能力中添加回调域名:
YourApp.entitlements<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:{INTL_TIKTOK_REDIRECT_URI_HOST}</string>
</array>将
{INTL_TIKTOK_REDIRECT_URI_HOST}替换为TIKTOK_REDIRECT_URI的主机名。例如TIKTOK_REDIRECT_URI = https://example.com/pnt/tiktok/logincallback,则填写example.com。 -
在该域名下托管
apple-app-site-association文件,使 iOS 能够将回调路由到您的应用。文件中必须在applinks部分包含应用的 Team ID 与 Bundle ID。 -
在 TikTok 开发者控制台,将 iOS Universal Link 设置为与
TIKTOK_REDIRECT_URI完全一致、以/pnt/tiktok/logincallback结尾的链接。
-
步骤2:添加 TikTok 登录
Player Network 会在拉起应用登录之前检查应用程序登录状态。
- 如果安装了 TikTok 应用程序,Player Network 会打开 TikTok 应用程序进行登录。
- 如果未安装 TikTok 应用程序,Player Network 登录页面将不会展示 TikTok 渠道登录入口。
-
注册登录相关回调。
- 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 AuthResult)
{
Debug.Log($"MethodID: {AuthResult.MethodId}");
string methodTag = "";
switch (AuthResult.MethodId)
{
case (int)INTLMethodID.INTL_AUTH_LOGIN:
methodTag = "Login";
break;
case (int)INTLMethodID.INTL_AUTH_BIND:
methodTag = "Bind";
break;
case (int)INTLMethodID.INTL_AUTH_AUTOLOGIN:
methodTag = "AutoLogin";
break;
case (int)INTLMethodID.INTL_AUTH_QUERY_USER_INFO:
methodTag = "QueryUserInfo";
break;
case (int)INTLMethodID.INTL_AUTH_GET_AUTH_RESULT:
methodTag = "GetAuthResult";
break;
}
}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);
} -
调用
AutoLogin接口自动登录。- Unity
- Unreal Engine
INTLAPI.AutoLogin();UINTLSDKAPI::AutoLogin(); -
在自动登录失败时调用
Login接口使玩家手动登录。
- Unity
- Unreal Engine
INTLAPI.Login(INTLChannel.TikTok);
UINTLSDKAPI::Login(EINTLLoginChannel::kChannelTikTok);
- 与游戏后台同步客户端身份验证状态,等待最终验证结果。
如果接入过程中遇到问题,请参见 常见问题。