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

от автора

Уверен, что многие из тех, кто хоть иногда играет в игры жанра 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!

ссылка на оригинал статьи http://habrahabr.ru/post/166465/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *