Skip to main content
Version: v4

好友(不含聊天)开发指南

本文介绍如何在游戏中加入好友系统。

集成前准备

  1. 参考 开发者中心配置 创建应用、配置包名与签名证书
  2. 参考集成指南(UnityAndroidiOS)完成对应平台或引擎的基础接入
  3. 好友 Lite 模块依赖于 TapTap 登录模块,开发者接入前应先完成 TapTap 登录的接入
info

注意:【获取好友列表/获取关注列表/获取粉丝列表】需要双方都授予好友关系权限,在登录接口的 scopes 参数中添加 user_friends 权限。

权限说明

该模块需要如下权限:

权限使用目的权限申请时机
网络权限用于访问网络数据用户首次使用该功能时会申请权限
网络状态权限用于检查网络连接状态(如 Wi-Fi 或移动数据是否可用)用户首次使用该功能时会申请权限
读取外部存储权限用于读取设备上的文件和媒体内容用户首次使用相关功能时会申请权限
写入外部存储权限用于保存文件到设备存储用户首次使用文件保存功能时会申请权限
管理外部存储权限用于管理设备上的文件用户首次使用文件管理功能时会申请权限
前台服务权限用于在应用处于后台时保持某些功能运行应用需要在后台运行服务时
相机权限用于拍摄照片和视频通话用户首次使用相机相关功能时会申请权限
振动权限用于消息通知时的振动提醒应用需要使用振动提醒时

该模块将在应用中添加如下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />

SDK 获取

远程依赖

NPMJS 方式:在 Packages/manifest.json 中添加:

"dependencies":{
"com.taptap.sdk.core":"4.9.3",
"com.taptap.sdk.login":"4.9.3",
"com.taptap.sdk.relationlite":"4.9.3"
}

GitHub 方式:在 Packages/manifest.json 中添加:

"dependencies":{
"com.taptap.sdk.core":"https://github.com/taptap/tapsdk-unity-dist.git?path=/Core#4.9.3",
"com.taptap.sdk.login":"https://github.com/taptap/tapsdk-unity-dist.git?path=/Login#4.9.3",
"com.taptap.sdk.relationlite":"https://github.com/taptap/tapsdk-unity-dist.git?path=/RelationLite#4.9.3"
}

本地文件导入

下载页 下载并导入以下 unitypackage 文件:

  • TapSDK_Core.unitypackage (TapTapSDK 核心模块,必选)
  • TapSDK_Login.unitypackage(TapTapSDK 登录模块,必选)
  • TapSDK_RelationLite.unitypackage (TapTapSDK 好友 Lite 模块,必选)

注册/注销 统一状态码监听回调

统一状态回调,不同 code 代表不同的状态。

using TapSDK.RelationLite;

RelationLiteCallback callback = new RelationLiteCallback();
TapTapRelationLite.RegisterRelationLiteCallback(callback);
TapTapRelationLite.UnregisterRelationLiteCallback(callback);

class RelationLiteCallback : ITapTapRelationLiteCallback
{

public RelationLiteCallback(){}

public void OnResult(int code)
{
// 处理好友 SDK 的状态码
// 700001:需要登录
// 700002:需要授权 TapTap 好友关系权限,在调用登录时添加 user_friends 权限
}

}

邀请好友上线

打开邀请好友页面,向选中好友发送邀请上线消息。

using TapSDK.RelationLite;

TapTapRelationLite.InviteGame();

邀请好友组队

打开邀请好友页面,向选中好友发送邀请组队消息,需要传组队相关参数teamId。

using TapSDK.RelationLite;

string teamId = "";
TapTapRelationLite.InviteTeam(teamId);

获取好友列表

获取当前用户的好友列表。

using TapSDK.RelationLite;

// 如非第一页 使用接口返回的nextPageToken
string nextPageToken = "";
try
{
var result = await TapTapRelationLite.GetFriendsList(nextPageToken);
// result.nextPageToken 下一页请求token,分页请求需传入
// result.list 好友列表请求结果
}
catch (Exception e)
{
Debug.Log($"friendsList request error : {e.Message}");
}

获取关注列表

获取当前用户的关注列表。

using TapSDK.RelationLite;

// 如非第一页 使用接口返回的nextPageToken
string nextPageToken = "";
try
{
var result = await TapTapRelationLite.GetFollowingList(nextPageToken);
// result.nextPageToken 下一页请求token,分页请求需传入
// result.list 关注列表请求结果
}
catch (Exception e)
{
Debug.Log($"followingList request error : {e.Message}");
}

获取粉丝列表

获取当前用户的粉丝列表。

using TapSDK.RelationLite;

// 如非第一页 使用接口返回的nextPageToken
string nextPageToken = "";
try
{
var result = await TapTapRelationLite.GetFansList(nextPageToken);
// result.nextPageToken 下一页请求token,分页请求需传入
// result.list 粉丝列表请求结果
}
catch (Exception e)
{
Debug.Log($"fansList request error : {e.Message}");
}

同步好友关系(openId)

使用好友 openId 将好友关系同步至 TapTap。

using TapSDK.RelationLite;

// 0-新增好友 1-删除好友
int action = 1;
// 当前用户昵称
string nickname = "";
// 好友用户昵称
string friendNickname = "";
// 好友openId
string friendOpenId = "";

try
{
await TapTapRelationLite.SyncRelationshipWithOpenId(action, nickname, friendNickname, friendOpenId);
}
catch (Exception e)
{
Debug.Log($" request error : {e.Message}");
}

同步好友关系(unionId)

使用好友 unionId 将好友关系同步至 TapTap。

using TapSDK.RelationLite;

// 0-新增好友 1-删除好友
int action = 1;
// 当前用户昵称
string nickname = "";
// 好友用户昵称
string friendNickname = "";
// 好友 unionId
string friendUnionId = ""
try
{
await TapTapRelationLite.SyncRelationshipWithUnionId(action, nickname, friendNickname, friendUnionId);
}
catch (Exception e)
{
Debug.Log($" request error : {e.Message}");
}

展示 TapTap 用户名片

展示指定用户的名片弹窗,可用于关注/取关用户。

using TapSDK.RelationLite;

string openId = "";
string unionId = "";
TapTapRelationLite.ShowTapUserProfile(openId, unionId);

国际化

TapTapRelationLite 支持设置语言:目前只支持简体中文