0

您好,我将通过 1 次呼叫从 Steam 获得一个乘法游戏成就列表,因为我需要很多时间进行多次呼叫。

通常我从用户那里获取游戏列表,然后我通过 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

提前谢谢

参考:

4

1 回答 1

0

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

为了避免您遇到的“缓慢”,您可能希望通过 AJAX 结果填充您的网页。这样,当您的服务器收到返回的结果时,用户会看到一次加载一个统计信息。

一个简单的工作流程:

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

对用户来说,很明显您正在检索结果,但在所有内容完全返回之前仍向它们呈现一些数据。

于 2014-06-05T16:22:26.120 回答