本模块功能自运营 SDK 3.13.0
开始提供
SDK 提供的好友系统
API,将游戏盒好友关系迁移至游戏中,为4399代理的游戏提供好友系统功能,并且支持调用功能接口,
包括获取安卓游戏盒的好友关系列表,提供完整的添加、删除、查找和邀请好友等功能接口,帮助游戏减少开发成本。
在正式接入好友系统前,接入方需要确认以下流程已完善:
在调用本服务相关接口前,游戏应先调用下面前置接口:
Friendship.getPtUser
,获取用户自身信息
/**
* 获取自身用户信息
*
* @return 用户id,昵称,头像地址
*/
public static PtUser getPtUser() {
return PtUserProvider.provide();
}
PtUser
,好友系统中定义的数据模型,描述玩家信息
具体信息在本文档后文的 API
详情部分,接口示例中涉及的其他类也是如此
调用示例:
= Friendship.getPtUser(); PtUser user
Friendship.list
,获取好友关系列表
/**
* 获取好友关系列表
*
* @param type 需要获取的某一列表,包含 {@value FOLLOW},{@value FOLLOWER},{@value MUTUAL},{@value BLACK}
* @param page 分页页码,仅当获取粉丝列表时参数有效,其他类型列表可传默认值 1
* @param listener 回调对象
*/
public static void list(int type, int page, OpeDataListener<FriendshipModel> listener);
OpeDataListener
,通用泛型回调接口,接入方调用方法后通过接口方法接收并处理调用结果
参数type
详解:
列表类型参数 | 含义 |
---|---|
Friendship.FOLLOW ,
int , 0 |
关注用户列表 |
Friendship.FOLLOWER ,
int , 1 |
粉丝用户列表 |
Friendship.MUTUAL ,int ,
2 |
互关用户列表 |
Friendship.BLACK ,int ,
3 |
黑名单列表 |
调用示例
// page:分页页码,获取粉丝列表时可分页,默认为 1
.list(Friendship.FOLLOW, page, new OpeDataListener<FriendshipModel>() {
Friendship@Override
public void onFinished(int code, @Nullable String message, @Nullable FriendshipModel data) {
// 根据回调结果进行处理,如使用data.follows
}
});
Friendship.follow
,当前用户关注其他用户
/**
* 当前用户关注其他用户
*
* @param uids 被关注用户uid,多个以英文逗号隔开
* @param listener 回调对象
*/
public static void follow(String uids, OpeDataListener<Void> listener);
调用示例:
// uids:被关注用户uid,多个以英文逗号隔开
.follow(uids, new OpeDataListener<Void>() {
Friendship@Override
public void onFinished(int code, @Nullable String message, @Nullable Void data) {
// 根据code进行判断是否关注成功
}
});
接口 code 列表
code | 含义 |
---|---|
98 |
被关注用户非游戏盒用户 |
99 |
当前用户非游戏盒用户 |
Friendship.unfollow
,当前用户取消关注其他用户
/**
* 当前用户取消关注其他用户
*
* @param uid 被取消关注用户uid
* @param listener 回调对象
*/
public static void unfollow(String uid, OpeDataListener<Void> listener);
调用示例:
// uid:被取消关注用户uid
.unfollow(uid, new OpeDataListener<Void>() {
Friendship@Override
public void onFinished(int code, @Nullable String message, @Nullable Void data) {
// 根据code进行判断是否取消关注成功
}
});
接口 code 列表
code | 含义 |
---|---|
99 |
已取消关注 |
Friendship.search
,当前用户使用精确uid搜索用户
/**
* 当前用户使用精确uid搜索用户
*
* @param uid 被搜索用户uid,4399 账号系统中的用户标识
* @param listener 回调对象
*/
public static void search(String uid, OpeDataListener<FriendshipModel> listener);
调用示例:
// uid:被搜索用户uid
.search(uid, new OpeDataListener<FriendshipModel>() {
Friendship@Override
public void onFinished(int code, @Nullable String message, @Nullable FriendshipModel data) {
// 根据code进行判断是否获取到搜索结果,使用data.searchList
}
});
Friendship.invite
,
当前用户向指定用户发送私信邀请,私信内容目前支持由服务端配置
/**
* 当前用户向指定用户发送私信邀请
*
* @param activity Activity对象
* @param uid 接收方用户uid
* @param listener 回调对象
*/
public static void invite(Activity activity, String uid, OpeDataListener<Void> istener);
调用示例:
// uid:接收方用户uid
.invite(activity, uid, new OpeDataListener<Void>() {
Friendship@Override
public void onFinished(int code, @Nullable String message, @Nullable Void data) {
// 根据code进行判断是否发送成功
}
});
/**
* 数据监听器
*/
public interface OpeDataListener<T> {
/**
* @param code 0为请求成功,并返回数据, 其他code均为失败,失败时数据可能为空
* @param message 说明文案
* @param data 返回数据
*/
void onFinished(int code, @Nullable String message, @Nullable T data);
}
code | 含义 |
---|---|
0 |
成功,通用code |
3 |
失败,通用code |
184 |
网络问题 |
FriendshipModel
及其内部类定义了好友系统中的数据模型
public class FriendshipModel {
/** 关注列表或者互关列表 */
public List<Follow> follows = new ArrayList<>();
/** 粉丝列表 */
public List<Follower> followers = new ArrayList<>();
/** 黑名单列表 */
public List<PtUser> blackLists = new ArrayList<>();
/** 搜索结果列表 */
public List<Search> searchList = new ArrayList<>();
/** 列表里的数据总数 */
public int count;
/** 是否有更多 0 否 1 是 */
public boolean more;
public static class Follow extends PtUser {
/** 是否互关 0 否 1 是 */
public boolean isFriend;
/** 新增时间 */
public String dateline;
/** 头像更新时间 */
public String facetime;
}
public static class Follower extends PtUser {
/** 是否互关 0 否 1 是 */
public boolean isFriend;
/** 头像更新时间 */
public String facetime;
}
public static class Search extends PtUser {
/** 好友关系 1 我关注他 2 他关注我 3=2+1 互关 -1 自己 0 互不关注 */
public int rela;
}
public class PtUser {
/** 平台用户 id */
public final String ptUid;
/** 头像地址 */
public final String sFace;
/** 昵称 */
public final String nick;
}
}