有关Valve的Steam Web API的一些问题 - 获取Dota 2匹配历史记录

时间:2018-06-14 14:56:49

标签: data-science steam steam-web-api

我想写一个小程序来分析Dota 2的比赛,以便编写一个Hero Picking Tool ..如果有一些机器学习,仍然由我决定

我刚刚查看了Steam Web API文档并编写了一个小程序来获取Data并将其写入文件,但是我对命令GetMatchHistoryBySequenceNum和GetMatchHistory有很大的问题。所以我有两个问题。如果有人能回答我,那就超级棒了!

  1. 我使用了这个"命令"获取游戏列表: https://api.steampowered.com/IDOTA2Match_205790/GetMatchHistoryBySequenceNum/v1/?key = .. my key

    IDOTA2Match_205790是什么意思?还有一个版本的命令,使用IDOTA2Match_570,我得到不同的结果。 IDOTA2Match_ID有什么作用?我从来没有发现过这个。

  2. 不知怎的,参数start_at_match_seq_num不起作用,有没有人有同样的问题?我总是得到相同的结果。我知道我需要序列id而不是匹配id,但是当使用GetMatchHistoryBySequenceNum时,序列id是0到100之间的数字。

  3. 其他信息:

    我想使用GetMatchHistoryBySequenceNum而不是GetMatchHistory,因为GetMatchHistory显示了奇怪的行为:它返回最新完成的游戏,按开始时间排序,而不是结束时间。这是非常不合适的,因为它会给你带来许多游戏,游戏长度不到10分钟,很少有超过30分钟的游戏。 (对于Dota玩家)我认为(我怀疑)这也是为什么像dotapicker.com这样的网站似乎更喜欢不朽的和其他早期游戏英雄的原因。

  4. 我的代码在这里:

    for($pages = 0 ; $pages<3; $pages++){
    
        for ($x = 0; $x <= 100; $x++){
    
            if(strpos($homepage, "match_id", $offset+10)==false){   
                break;
            }
    
            $match_id_str = "";
            $index1  = strpos($homepage, "match_id", $offset+10);
            $offset = $index1;
    
            #10 to 16: this is the letters after the search-word "match_id"  (the actual number)
            for ($x = 10; $x <= 16; $x++) {
                $match_id_str = $match_id_str.$homepage[$index1+$x];
            }
    
        }
    
        $cmd_url  = "https://api.steampowered.com/IDOTA2Match_205790/GetMatchHistoryBySequenceNum/v1/?key=My_key&start_at_match_seq_num=".match_id_str;
        $homepage = file_get_contents($cmd_url);
        file_put_contents($file, $homepage, FILE_APPEND);
    }
    

    我希望有人可以帮助我,我知道这是一个利基话题,但这也是为什么很难找到相关信息的原因。

0 个答案:

没有答案