如何调用官方Xbox Web API获取用户账号数据?
官方Xbox Web API 调用指南及端点说明
前置步骤:令牌转换
你拿到的Azure AD访问令牌无法直接调用Xbox API,需先转换为Xbox Live令牌和XSTS令牌:
获取Xbox Live用户令牌
- 请求端点:
POST https://user.auth.xboxlive.com/user/authenticate - 请求体(JSON格式):
{ "Properties": { "AuthMethod": "RPS", "SiteName": "user.auth.xboxlive.com", "RpsTicket": "d={你的Azure AD访问令牌}" }, "RelyingParty": "http://auth.xboxlive.com", "TokenType": "JWT" } - 响应提取:
Token字段为Xbox Live用户令牌,DisplayClaims.xui[0].uhs为用户哈希(后续请求需用)
- 请求端点:
获取XSTS令牌
- 请求端点:
POST https://xsts.auth.xboxlive.com/xsts/authorize - 请求体(JSON格式):
{ "Properties": { "SandboxId": "RETAIL", "UserTokens": [ "{你的Xbox Live用户令牌}" ] }, "RelyingParty": "http://xboxlive.com", "TokenType": "JWT" } - 响应提取:
Token字段为XSTS令牌
- 请求端点:
核心数据获取端点
所有请求需在请求头中携带授权信息:Authorization: XBL3.0 x={用户哈希};{XSTS令牌}
用户概要信息(summaries)
根据玩家标签(Gamertag)获取:GET https://profile.xboxlive.com/users/gt({玩家标签})/profile/settings?settings=Gamerscore,GameDisplayPicRaw,Gamertag
根据用户XUID获取:GET https://profile.xboxlive.com/users/xuid({XUID})/profile/settings?settings=Gamerscore,GameDisplayPicRaw,Gamertag
可修改settings参数获取更多字段,比如ProfileBio、Location等。用户统计数据(UserStats/profileStats)
获取特定游戏的玩家统计数据:GET https://stats.xboxlive.com/users/xuid({XUID})/scids({游戏SCID})/stats
说明:SCID是游戏的服务配置ID,公开游戏的SCID可通过Xbox开发者文档或游戏官方渠道获取;部分统计数据需游戏开发者授权访问。
注意事项
- Azure AD应用注册时,需添加
Xbox Live的委托权限(如XboxLive.signin、XboxLive.offline_access)并完成管理员同意 - 令牌有效期有限,可通过refresh token重新获取Azure AD令牌,再重复令牌转换流程
内容的提问来源于stack exchange,提问作者Franco
相关产品推荐
相关产品推荐

