跳到主要内容
版本:v2

TapSDK 快速开始

本文介绍如何快速接入 TapSDK 并实现 TapTap 登录功能。

备注

下载 页面提供了 Unity、Android、iOS 示例项目,可供参考。

创建应用

请登录 TapTap 开发者中心 注册为开发者并创建应用。

下载 TapTap 应用

点击下载 TapTap 应用

环境要求

  • Unity 2019.4 或更高版本
  • iOS 11 或更高版本,Xcode 版本 14.1 或更高版本
  • Android 5.0(API level 21)或更高版本

项目配置

SDK 可以通过 Unity Package Manager 导入或手动导入,请根据项目需要选择。

使用 Unity Package Manager

在项目的 Packages/manifest.json 文件中添加以下依赖:

"dependencies":{
// 登录
"com.taptap.tds.login":"https://github.com/TapTap/TapLogin-Unity.git#2.1.8",
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#2.1.8",
"com.taptap.tds.bootstrap":"https://github.com/TapTap/TapBootstrap-Unity.git#2.1.8",
}
提示

如果是手动下载 unitypackage 进行 SDK 导入,需要将 Assets/TapTap/Common/Plugins/iOS/TapTap.Common.dll 设置为只支持 iOS

点击 参考 SDK 最新版本号。

手动导入

  1. 点击下载 TapSDK-UnityPackage.zip,然后将该 SDK 解压到方便的位置。

  2. 在 Unity 项目中依次转到 Assets > Import Packages > Custom Packages

  3. 从解压缩中的 TapSDK 中,选择希望在应用中使用的 TapSDK 包导入。

    • TapTap_TapBootstrap.unitypackage 必选,TapSDK 启动器
    • TapTap_TapCommon.unitypackag 必选,TapSDK 基础库
    • TapTap_TapLogin.unitypackage 必选,TapTap 登录

导入 SDK 后还需进行 Android、iOS 平台的相关配置。

Android 配置

  1. File > Build Settings 添加 Android 配置文件。

  2. 编辑 Assets/Plugins/Android/AndroidManifest.xml 文件,在 Application Tag 下添加以下代码。

    <activity
    android:name="com.taptap.sdk.TapTapActivity"
    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:exported="false"
    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

iOS 配置

Assets/Plugins/iOS/Resource 目录下创建 TDS-Info.plist 文件,复制以下代码并且替换其中的 ClientId 和授权文案:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>taptap</key>
<dict>
<key>client_id</key>
<string>ClientId</string>
</dict>

<key>NSPhotoLibraryUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<key>NSCameraUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<key>NSMicrophoneUsageDescription</key>
<string>说明为何应用需要此项权限</string>
<!--TapDB 需要用到,收集 IDFA,如应用程序不想弹框,可以设置 TapDB.AdvertiserIDCollectionEnabled(false)-->
<key>NSUserTrackingUsageDescription</key>
<string>说明为何应用需要此项权限</string>
</dict>
</plist>

初始化

初始化 TapSDK 时需传入 Client ID、区域等应用配置信息。

TapConfig tapConfig = new TapConfig.Builder()
.ClientID("clientId")// 必须
.ClientSecret("client_secret")// 必须,开发者中心对应 Client Token
.RegionType(RegionType.CN)// 非必须,默认 CN
.ConfigBuilder();

TapBootstrap.Init(tapConfig);

登录回调

注册登录回调,以接收登录结果。

TapBootstrap.RegisterLoginResultListener(new MyLoginCallback());
public class MyLoginCallback : ITapLoginResultListener {
public void OnLoginSuccess(AccessToken accessToken)
{
Debug.Log("登录成功: " + accessToken.ToJSON());
}

public void OnLoginError(TapError error)
{
Debug.Log("登录失败: " + error.errorDescription);
}

public void OnLoginCancel()
{
Debug.Log("登录取消");
}
}

AccessToken

上面代码示例中的 AccessToken 用于用户鉴权,过期时间为 90 天(过期后 SDK 会自动清除本地缓存),可以传到游戏服务端去获取用户信息,参见 获取用户信息

AccessToken 示例:

{
"access_token":"accessToken",
"kid":"kid",
"macAlgorithm":"macAlgorithm",
"tokenType":"tokenType",
"macKey":"macKey",
"expireIn" :7776000
}

参数说明

参数描述
access_token用户登录后的凭证
kid当前实际返回的 kid 和 accessToken 值相等,建议使用 accessToken
macAlgorithm固定为 hmac-sha-1
tokenType固定为 mac
macKeymac 密钥
expireIn过期时间

TapTap 登录

在尝试登录用户前先检查登录状态。

检查登录状态

尝试获取当前用户的 Access Token,如 Access Token 为空则用户未登录。

TapBootstrap.GetAccessToken((accessToken, error) => {
if (accessToken == null)
{
Debug.Log("当前未登录");
}
else
{
Debug.Log("已登录");
}
});

登录

LoginType loginType = LoginType.TAPTAP;
TapBootstrap.Login(loginType, new string[] { "public_profile" });

登出

警告

当用户退出登录的时候请务必调用此方法执行退出功能, 避免用户信息错乱。

TapBootstrap.Logout();

打包

打包 APK

  1. 配置 package name 和签名文件:

  2. 检查 Player Settings > Other Settings > Target APILevel 版本,当 Target APILever < 29 时,需要配置 manifest,在 application 节点添加

    tools:remove="android:requestLegacyExternalStorage"

导出 Xcode 工程

需要配置 icon 和 BundleID