Steam API GetOwnedGames无法返回全部已拥有游戏问题咨询
问题成因
大量调用GetOwnedGames接口的开发者都遇到过同款免费游戏缺失问题,核心原因有两个:
- 接口默认配置不返回免费游戏记录:
include_played_free_games参数默认值为false,不管是未启动的免费游戏,还是已经游玩、解锁成就的免费游戏,默认都不会被纳入返回结果。 - 内容过滤规则拦截:部分NSFW类、小众独立免费游戏,会被Steam的账户级内容过滤规则拦截,或者开发者未将游戏纳入公开API索引,也会导致返回结果中缺失。
解决方案
按优先级依次尝试以下操作即可解决绝大多数场景的问题:
- 调整API请求参数,补全两个必要字段,修改后的请求格式为:
http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=KEY&steamid=STEAMID&format=json&include_played_free_games=1&include_appinfo=1
参数值设置为1代表启用对应规则,开启后所有你已游玩的免费游戏都会正常返回。 - 检查对应Steam账户的内容偏好设置:确认账户的成人内容偏好所有选项均已勾选开启,避免NSFW类游戏被账户级过滤拦截。
- 如果调整后仍有个别游戏无法拉取,属于Steam后端索引遗漏问题,无通用API层面的解决方案,你可以手动维护一个遗漏游戏的白名单,通过GetPlayerAchievements接口单独查询对应appid的成就数据,补全到你的展示系统即可。
内容的提问来源于stack exchange,提问作者Hadrien Debris
相关产品推荐
相关产品推荐

