从Steam API检索已安装游戏的列表

我正在研究Steam轮盘计划,我正在尝试创建filter。 我想要实现的其中一个filter(如果用户数据是用SteamWorks加载的),则返回他/她在他的计算机上安装的游戏列表(最好是应用程序IDforms)然后我可以比较到我原来的完整列表中删除不需要的值; 就像一个filter,可以从可以挑选的游戏列表中删除用户没有在他的机器上安装的游戏。

如果:

Steam Roulette是一种在线趋势,以网络应用程序的forms,用户从他/她的Steam库中挑选一个随机游戏并播放它。

现在,我正在使用Web API检索用户详细信息,使用通过SteamUser.GetSteamID().ToString()检索的Steam SteamUser.GetSteamID().ToString()并将其输入:

 string apiURL = "http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=" + APIKey + "&steamid=" + id + "&format=json&include_appinfo=1"; 

并从那里读取返回的.json信息,以生成程序可以从中挑选的游戏列表。


是否有任何SteamWorksfunction可用于检索计算机上安装的游戏列表,而不是播放器拥有/拥有的所有游戏,而无需读取各自文件夹的蒸汽库?

如果不存在可能的function,有没有办法手动(在API之外)获取已安装游戏的列表?

此文件C:\Program Files (x86)\Steam\steamapps\libraryfolders.vdf

包含所有本地蒸汽库的路径。 (不包括默认库中的那个)

然后获取位于每个游戏文件夹( {library}\steamapps\common\{game}\steam_appid.txt )中的{library}\steamapps\common\{game}\steam_appid.txt ,您将获得所有已安装游戏的Steam应用程序ID列表。

我自己也在考虑这样做。 不幸的是,steam api没有返回一个值,可以可靠地告诉你它是否安装在你的电脑上。 然而,浏览安装游戏的文件夹(我的是“C:\ Program Files(x86)\ Steam \ steamapps \ common”)我发现每个游戏文件夹都包含一个带有它的Steam应用程序ID的文本文件。 因此,您可以递归查看每个文件夹并首先构建ID列表。 然后,将应用程序ID列表与JSON getOwnedGames一起使用,以获取全名和其他信息。