通过此链接,您可以从Dota的2 https://api.steampowered.com/IDOTA2Match_205790/GetMatchHistory/v001/?key=*获得所有比赛** * ***如何通过steamid获得用户匹配?
,但如何通过steamid得到一个单用户的比赛吗?
通过此链接,您可以从Dota的2 https://api.steampowered.com/IDOTA2Match_205790/GetMatchHistory/v001/?key=*获得所有比赛** * ***如何通过steamid获得用户匹配?
,但如何通过steamid得到一个单用户的比赛吗?
您需要做的第一件事是将STEAM ID转换为PROFILE ID。这可以使用诸如Steam Condenser项目之类的东西来完成,更简单的是蒸汽冷凝器项目中的function。如果你只是使用这个函数,你将不得不修改抛出的异常,因为SteamCondenserException
将不存在。如果您有独特的玩家ID,我建议您使用整个蒸汽冷凝器项目并查看此answer。
/**
* Converts a SteamID as reported by game servers to a 64bit numeric
* SteamID as used by the Steam Community
*
* @param string $steamId The SteamID string as used on servers, like
* <var>STEAM_0:0:12345</var>
* @return string The converted 64bit numeric SteamID
* @throws SteamCondenserException if the SteamID doesn't have the correct
* format
*/
public static function convertSteamIdToCommunityId($steamId) {
if($steamId == 'STEAM_ID_LAN' || $steamId == 'BOT') {
throw new SteamCondenserException("Cannot convert SteamID \"$steamId\" to a community ID.");
}
if (preg_match('/^STEAM_[0-1]:[0-1]:[0-9]+$/', $steamId)) {
$steamId = explode(':', substr($steamId, 8));
$steamId = $steamId[0] + $steamId[1] * 2 + 1197960265728;
return '7656' . $steamId;
} elseif (preg_match('/^\[U:[0-1]:[0-9]+\]$/', $steamId)) {
$steamId = explode(':', substr($steamId, 3, strlen($steamId) - 1));
$steamId = $steamId[0] + $steamId[1] + 1197960265727;
return '7656' . $steamId;
} else {
throw new SteamCondenserException("SteamID \"$steamId\" doesn't have the correct format.");
}
}
现在,你有64位ID,您可以通过这个API调用你已经做。它将传递给account_id
参数。
在PHP中,你最终会像这样的东西:
$matches = 10; // Return last 10 matches
$acct = convertSteamIdToCommunityId(STEAMIDYOUARECHECKING);
$APIKEY = <YOURKEYHERE>;
$steamurl = "https://api.steampowered.com/IDOTA2Match_570/GetMatchHistory/V001/?key=$APIKEY&account_id=$acct&Matches_Requested=$matches&format=json";
$json_object= file_get_contents($steamurl);
header('Content-Type: application/json');
echo $json_object;
在该段顶部的三个变量您与匹配的数量填写你要回来,蒸汽ID您正在检查您正在使用的API KEY。你的结果将在$json_object
中,供你解析。
例如我的链接是http://steamcommunity.com/profiles/76561198125073633/ 如何获取account_id? – NickUnuchek
哦对不起,它已经蒸汽76561198125073633 – NickUnuchek
@Andy ACCOUNT_ID!= steamid – NickUnuchek
@Andy如何通过用户名或通过链接找到ACCOUNT_ID(http://steamcommunity.com/id/URLNAME)或PROFILE_ID http://steamcommunity.com/profiles/*** ***? – NickUnuchek
我添加了一个关于如何从URL名称获取配置文件ID的答案的链接。 – Andy