当然,这些数据必须存在于 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
Python:
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 客户端的情况下获取此信息。