Pull to refresh

Elophant: хоть какой-то доступ к API League of Legends

Reading time 4 min
Views 14K


Уверен, что многие из тех, кто хоть иногда играет в игры жанра MOBA (Multiplayer Online Battle Arena), или даже просто в MMORPG, наверняка слышали про такой проект как League of Legends.
LoL — второй (после Demigod) клон всем известной «Доты», и, на данный момент, имеет очень много поклонников по всему земному шару (30+ млн. зарегистрированных пользователей). В 2010-2011 League of Legends даже была включена в список дисциплин на крупнейшем чемпионате для геймеров — WCG (World Cyber Games).

Впрочем, хватит хвалить и без того хвалёную игру, перейдем к делу. Как-то раз, мне приспичило узнать подробную информацию о своем игровом аккаунте в LoL, а именно: посмотреть результаты своих последних сыгранных матчей, общую игровую статистику для каждого персонажа и соответствующие значения KDA Ratio (Kills / Deaths / Assissts). Но узнать эту информацию мне нужно было не имея под рукой клиента с игрой. Я перелопатил весь официальный сайт и форум, в поисках хоть какой-то информации об API — все безуспешно. Тогда, я еще не знал про ресурсы LoLKing, SoloMid и т.д.

Уже намного позже, в процессе «гугления», был найден сайт Elophant.com, на котором располагалась (собственно, и сейчас располагается) небольшая API — документация. В ней описаны основные методы, позволяющие узнать имя саммонера, информацию о его рунах / страницах талантов, информацию о последних десяти сыгранных матчах, общую игровую статистику, информацию о всех существующих игровых предметах / персонажах и т.п.

В разделе About, рассматриваемого сайта, сказано следующее:
How It Works? Once the information is entered, Elophant queries Riot's database...
(Riots Games — разработчик и издатель League of Legends). То есть, сам ресурс Elophant — всего лишь посредник, между пользователем и серверами Riot'ов. Но лично мне, это не важно: работает и ладно.

Первым делом, придется зарегистрироваться, чтобы получить уникальный ключ для доступа к API. Получили ключ? Отлично. Работа с сервисом ведется с помощью GET запросов, которые имеют вид api.elophant.com/v2/region/resource/params/params?key=key, где:

  • region — сервер, на котором играет пользователь. na — North America, euw — Europe West, eune — Europe Nordic / East, br — Brazil. Корейские сервера пока не поддерживаются.
  • resource — название метода
  • params — параметры метода
  • key — тот самый уникальный ключ доступа к API


Ответ на все запросы приходит в формате JSON, что существенно облегчает его обработку. В PHP, например, достаточно применить метод json_decode(string json, TRUE), и на руках вы уже имеете ассоциативный массив, из которого вы вытаскиваете любую необходимую вам информацию.

Для примера, рассмотрим использование метода GET summoner, позволяющего узнать ID саммонера (необходимый для работы с некоторыми другими методами), внутриигровой ник-нейм, уровень игрока и ID иконки профиля. Получить эту информацию очень просто (PHP):
<?php
	$region = "euw";
	$method = "summoner";
	$params = "summoner_name";
	$key = "here_comes_your_key";
	$data = json_decode(file_get_contents("http://api.elophant.com/v2/".$region."/".$method."/".$params."?key=".$key), TRUE);
	print_r($data);
	echo "<br />".$data["data"]["summonerId"];
?>

На экране мы будем иметь весь наш полученный массив и отдельной строчкой — ID игрока.

Список основных External методов:
Метод Параметры Описание
GET summoner string summonerName Returns a summoner's accountId, summonerId, account level, and profile icon id.
GET mastery_pages int summonerId Returns an array with each mastery book page and subsequent talent point entries for a specific summoner.
GET rune_pages int summonerId Returns an array with each rune page and subsequent runes for a specific summoner.
GET recent_games int accountId Returns the statistics for a summoner's 10 most recent games.
GET summoner_names CSV array summonerIds Returns an array of summoner names in the same order as provided in the parameter summonerIds.
GET player_stats int accountId, string season Returns an overview of the statistics for each game mode for the specified summoner.
GET ranked_stats int accountId, string season Returns every statistic for every champion accumulated from all ranked game types for a specified summoner and season.
GET summoner_team_info int summonerId Returns all team info regarding the specified summoner, including team overviews and all of the teams the summoner has created.
GET in_progress_game_info string summonerName Returns the player information for both teams, bans (if draft or ranked), and observer information.
GET team string teamId Returns a brief overview of a team, including gameType dependent Elos, the current roster, and basic match history statistics.
GET find_team string tagOrName Returns a brief overview of a team, including gameType dependent Elos, the current roster, and basic match history statistics.
GET team_end_of_game_stats string teamId, double gameId Returns very detailed statistics about the specified match.
GET team_ranked_stats string teamId Returns each team member's statistics for the specified team. This call provides very similar results to getRankedStats.


Существуют также два Internal метода: GET items и GET champions. Эти методы используются без указания региона саммонера (api.elophant.com/v2/items?key=key). Первый метод возвращает список всех игровых предметов, второй — список всех персонажей.

Пожалуй, стоит еще отметить то, что в течение 15 минут вы можете совершить максимум 1000 запросов.

На этом все, See you in the Fields of Justice!
Tags:
Hubs:
+1
Comments 10
Comments Comments 10

Articles