Steam api获得多个游戏成就和1个调用的Schema列表

时间:2014-06-05 14:27:38

标签: steam steam-web-api

你好,我将获得一个来自Steam的倍数游戏 - Achievmentlist,因为我花了很多时间进行多重调用。

通常我从用户那里得到游戏列表,然后我通过foreach xml文件调用每个游戏。

$url5 = http://steamcommunity.com/id/projacore/games/?xml=1';
print $url5;
$data5 = file_get_contents($url5);
$xml5 = simplexml_load_string($data5);
foreach ($xml5->games->children() as $item5){ 

$dasgame = htmlentities($item5->appID);

$url8 = 'http://api.steampowered.com/ISteamUserStats/GetSchemaForGame/v0002/?key=' . $steam_api . '&appid=' . $item5->appID . '&l=german&format=xml';
$data8 = file_get_contents($url8);
$xml8 = simplexml_load_string($data8);  


$url11 = 'http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?appid=' . $dasgame . '&key=' . $steam_api . '&steamid=' . $item5->appID . '&l=german&format=xml';
$data11 = file_get_contents($url11);
$xml11 = simplexml_load_string($data11);

//and the rest of the code
}   

需要花费很多时间,因为当用户有50个游戏时,它会从Steam调用50次数据。

现在我会问我可以通过1次电话获得倍数成就吗?

像这样:

http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?appid=240,400,10&key=' . $steam_api . '&steamid=' . $steamid64 . '&l=german&format=xml

提前谢谢

的引用:

1 个答案:

答案 0 :(得分:0)

不,你不能。 Steam API仅允许您一次查询一个游戏(appid)。

要解决您遇到的'慢度',您可能希望通过AJAX结果填充您的网页。这样,当您的服务器收到结果时,用户会看到一次加载一个统计信息。

简单的工作流程:

  • 用户输入他们当前所做的值
  • 新页面加载。在此页面上,为用户拥有游戏的每个div创建appid(通过单个API调用,这应该很容易找到)
  • 该页面会为每个appid
  • 触发单独的ajax调用
  • 在返回结果时,将填充与返回结果相关联的div

对于用户来说,显而易见的是,您正在检索结果,但在完全返回所有内容之前仍然会向其显示某些数据。