当然,这些数据必须存在于 Valve 的服务器中,但他们只是出于任何原因都不会公开它。目前,该数据似乎只能从用户 PC 上的 Steam 客户端获得。经过一番挖掘,我能够从以下文件中找到 lastplayed 时间戳:
\steam\userdata\{steam_id}\config\localconfig.vdf
请注意,.vdf 文件是可以在文本编辑器中打开的文本文件。
这是时间戳之一的示例(正当理由 3):
"225540"
{
"LastPlayed" "1466894369"
}
时间戳采用纪元格式并转换为6/25/2016, 6:39:29 PM GMT-4:00 DST
您可以让用户从他们的计算机上传此文件,然后您可以在您的服务器上对其进行解析以获取上次播放的时间戳。这并不理想,但它是一个开始。
我不确定您为项目选择的编程语言是什么,但这里有一些 VDF 解析器可以帮助您入门:
C#:
https://github.com/sanmadjack/VDF
NodeJS:
https://www.npmjs.com/package/vdf
蟒蛇:
https://gist.github.com/strycore/5735482
2017 年 4 月 29 日编辑:
我现在发现可以从用户的 Steam 游戏页面中抓取这些信息:
http://steamcommunity.com/id/pcmantinker/games/?tab=all
通过检查页面的源代码,我注意到有一个用于渲染游戏的 JavaScript 对象。在这个对象中,每个游戏都有一个可用的“last_played”字段。一个条目如下所示:
{
"appid":346110,
"name":"ARK: Survival Evolved",
"logo":"http:\/\/cdn.edgecast.steamstatic.com\/steamcommunity\/public\/images\/apps\/346110\/58a660ddb7ed1864656ec65e4c18d6edd3bbf512.jpg",
"friendlyURL":346110,
"availStatLinks":{
"achievements":true,
"global_achievements":true,
"stats":false,
"leaderboards":false,
"global_leaderboards":false
},
"hours":"0.5",
"hours_forever":"84",
"last_played":1492447993
}
为了解析此信息,您需要找到字符串的开头和结尾,然后将 JSON 解析为您可以操作的对象。此时字符串的开头是"var rgGames = [",字符串的结尾是"];"。我知道这并不理想,但它确实允许您在无需安装 Steam 客户端的情况下获取此信息。