如何通过Xbox REST API利用XUID获取Xbox Live会话?
无法通过XUID获取《我的世界:基岩版》Xbox Live会话ID问题
我尝试通过以下curl请求,利用XUID获取Xbox Live会话:
curl -is -X GET "https://sessiondirectory.xboxlive.com/serviceconfigs/4fc10100-5f7a-4470-899b-280835760c07/sessiontemplates/MinecraftLobby/sessions?xuid=<xuid>" -H "Authorization: XBL3.0 x=<userhash>;<token>" -H "x-xbl-contract-version: 105"
在备用账号运行《我的世界:基岩版》的情况下,使用该账号XUID执行请求后,响应始终为{result:[]}。已尝试修改合约版本、更换账号,多次确认游戏处于运行状态,但结果一致。目前已获取到游戏的currentPlayers、groupId、joinRestriction、maxPlayers、platform、sequenceNumber和titleId,但无法从会话目录中获取多人会话ID。
排查与解决建议
- 检查会话可见性:基岩版多人会话默认可能设为私人模式,这类会话不会在公共会话目录中展示。确认游戏内多人设置为「公开」或「好友可见」,仅公开会话能被接口检索到。
- 验证请求参数:
- 确保XUID、userhash、token格式完全正确,Authorization header严格遵循
XBL3.0 x=<userhash>;<token>格式,无多余空格或字符,格式错误会导致权限验证失败返回空结果。 - 尝试添加过滤参数缩小范围,比如追加
&platform=<你的平台>(如Windows10、XboxOne)或&include=info,members,提升检索精准度。
- 确保XUID、userhash、token格式完全正确,Authorization header严格遵循
- 核对合约版本:虽然你调整过版本,但建议确认
MinecraftLobby模板对应的官方推荐合约版本,可尝试104或106,版本不匹配可能导致接口返回异常。 - 确认账号与会话状态:确保备用账号Xbox Live服务正常,无多人游戏限制;同时确认账号已进入Xbox Live多人会话(而非单人/本地局域网会话),本地会话不会同步到Xbox Live目录。
- 通过groupId直接检索:既然已获取
groupId,可改用groupId查询会话,请求格式如下:
这种方式可绕过XUID检索的限制,直接定位目标会话。curl -is -X GET "https://sessiondirectory.xboxlive.com/serviceconfigs/4fc10100-5f7a-4470-899b-280835760c07/sessiontemplates/MinecraftLobby/sessions?groupId=<groupId>" -H "Authorization: XBL3.0 x=<userhash>;<token>" -H "x-xbl-contract-version: 105"
内容的提问来源于stack exchange,提问作者GoldenD60
相关产品推荐
相关产品推荐

