gpt4 book ai didi

steam-web-api - 如何使用 Steam API 获取 Steam 游戏的 "last played on"

转载 作者:行者123 更新时间:2023-12-04 18:40:14 69 4
gpt4 key购买 nike

我正在开发一个使用公共(public) Steam API 来收集一些信息的应用程序。
目前我通过调用GetPlayerAchievements (v0001)检索成就和通话总时长 GetOwnedGames (v0001) .这工作正常。

但是现在我还需要知道游戏的最后一次播放数据是什么,例如,如果您在个人资料页面上输入,您可以在 html 页面中看到此信息 (http://steamcommunity.com/profiles/your_steam_id_here/)

查看 Steam API 文档,我找不到任何 api 调用来检索此信息。那么,这只能通过抓取用户资料网页获得吗?

最佳答案

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

关于steam-web-api - 如何使用 Steam API 获取 Steam 游戏的 "last played on",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862725/

69 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com