好友列表功能
注册回调
有关回调信息,请参见 Unity 回调 / Unreal 回调。
Discord
tip
不使用 Discord 作为登录渠道也可以获取 Discord 好友列表,但是需要先调用 DiscordAuthorize 进行 Discord 账号授权。
前置条件:
- 需要玩家授予
openid、sdk.social_layer和email权限。详见 OAuth2 Scopes。
Discord 返回的好友列表是无序的,Player Network SDK 会提供用户最近在线时间供游戏排序。
参数:
page(int): 页数,>0count(int): 每页数量,>0
- Unity
- Unreal Engine
INTLAPI.DiscordQueryFriends(1, 10);
UINTLSDKAPI::DiscordQueryFriends(1, 10);
好友信息结构:DiscordUserInfo
更多有关 Discord 的社交功能,可参考 Discord 社交 SDK。
Epic
仅支持获取平台好友(非同玩好友)。
参数:
- page: 页码
- page_size: 每页好友数
- is_in_game:
false获取平台好友
- Unity
- Unreal Engine
// 获取平台好友,每页 10 个,返回第 1 页
INTLAPI.QueryFriends(1, 10, false, INTLChannel.Epic);
// 获取平台好友,每页 10 个,返回第 1 页
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelEpic, 1, 10, false, "{}");
Facebook
需要在 Facebook 开发者后台申请 user_friends 权限,审核通过后方可使用。详情请联系 Player Network 助手。
审核通过后,通过后台接口 /v2/friend/friend_list 获取好友列表。
Steam
支持查询平台好友和同玩好友。同玩好友指最近一起游戏的好友,不一定在 Steam 平台添加了好友。
前置条件:
- 安装并运行 Steam
- Steam 登录状态有效
参数:
- page: 页码
- page_size: 每页好友数
- is_in_game:
true- 获取同玩好友false- 获取平台好友
- Unity
- Unreal Engine
// 获取同玩好友,每页 10 个,返回第 1 页
INTLAPI.QueryFriends(1, 10, true, INTLChannel.Steam);
// 获取平台好友,每页 10 个,返回第 1 页
INTLAPI.QueryFriends(1, 10, false, INTLChannel.Steam);
// 获取同玩好友,每页 10 个,返回第 1 页
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelSteam, 1, 10, true, "{}");
// 获取平台好友,每页 10 个,返回第 1 页
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelSteam, 1, 10, false, "{}");
好友状态
好友状态信息在 FriendResult 的 extra_json 字段中返回。
"extra_json": {
"persona_state": 0
}
persona_state 说明:
| 值 | 说明 |
|---|---|
| 0 | 未登录 |
| 1 | 已登录 |
| 2 | 已登录,但繁忙 |
| 3 | 自动离开 |
| 4 | 自动离开很久 |
| 5 | 在线,交易中 |
| 6 | 在线,想玩游戏 |
| 7 | 在线,但对好友显示为离线 |
错误码
| 错误码 | 说明 |
|---|---|
| 1031 | Steam DLL 加载失败 |
| 1032 | 需要从 Steam 平台启动游戏 |
| 1033 | Steam 初始化失败(检查 steam_appid.txt 位置或 Steam 是否运行) |
Switch
支持查询平台好友和同玩好友。
参数:
- page: 页码(从 0 开始)
- page_size: 每页好友数(≤300)
- is_in_game:
true- 获取同玩好友false- 获取平台好友
- Unity
- Unreal Engine
INTLAPI.QueryFriends(1, 10, true, INTLChannel.Switch);
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelSwitch, 1, 10, true);
返回数据结构:
{
"ret": 0,
"msg": "",
"method_id": 203,
"ret_code": 0,
"ret_msg": "Success",
"lists": [{
"openid": "eb4621e26d73bdab",
"user_name": "xuzhang",
"gender": 0,
"extra_json": "{\"status\":\"0\",\"isFavorite\":\"true\",\"lastPlayedAppId\":\"0\",\"isSameApplication\":\"false\"}"
}]
}
VK
支持查询平台好友和同玩好友。
参数:
- page: 页码
- page_size: 每页好友数
- is_in_game:
true- 获取同玩好友false- 获取平台好友
- Unity
- Unreal Engine
// 获取同玩好友
INTLAPI.QueryFriends(1, 10, true, INTLChannel.VK);
// 获取平台好友
INTLAPI.QueryFriends(1, 10, false, INTLChannel.VK);
// 获取同玩好友
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelVK, 1, 10, true, "{}");
// 获取平台好友
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelVK, 1, 10, false, "{}");
Xbox Series X|S
仅支持获取同玩好友。
- Unity
- Unreal Engine
INTLAPI.QueryFriends(1, 10, true, INTLChannel.Xbox);
UINTLSDKAPI::QueryFriends(EINTLLoginChannel::kChannelXbox);
返回数据结构:
{
"ret": 0,
"msg": "",
"method_id": 203,
"ret_code": 0,
"ret_msg": "Success",
"lists": [{
"openid": "10027382",
"user_name": "xuzhang",
"extra_json": "{\"status\":\"Online\"}"
}]
}