Что такое API?
API - переводится как программный интерфейс приложения, что в свою очередь обозначает интерфейс, с которым может взаимодействовать ваше приложение, чтобы получить какие-либо данные с этого веб-ресурса. Ответ АПИ возвращается в виде JSON, а поэтому его легко использовать.
Подключение
Для работы с API VimeWorld нужно отправить запрос на один из этих адресов:
https://api.vimeworld.ru/
https://api.vime.world/ (Из-за бана РКН может не работать)
В конце адреса нужно добавить имя метода, а также данные (например ID игрока/гильдии). По умолчанию без использования токена разработчика вы можете совершать 60 запросов минуту с одного IP. С использованием токена же (получить можно на сервере MiniGames при помощи команды /api dev) значение увеличивается до 300, но если вам и этого мало, то можете написать Дмитрию Манчинскому (@xtrafrancyz) в телеграмме или на почту.
Пример правильных запросов:
PHP cURL:
$ch = curl_init("https://api.vimeworld.ru/online");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Access-Token: MY_TOKEN'
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
print("Онлайн VimeWorld: {$response->total}");
NodeJS axios:
const axios = require('axios');
var response = ""
axios.get('https://api.vimeworld.ru/online', {
params: {
token: "MY_TOKEN"
}
})
.then(function (response) {
console.log(`Онлайн VimeWorld: ${response.data.total}`)
})
Python requests:
import requests
response = requests.get(
'https://api.vimeworld.ru/online',
params={'token': 'MY_TOKEN'},
).json()
print(f"Онлайн на VimeWorld: {response['total']}")
Возможные ошибки
Разумеется, при подключении что может пойти не так. Поэтому, главная администрация сделала ошибкам специальные коды для ошибок:
-3: Неизвестная ошибка в работе API, при её возникновении нужно сообщить куда-нибудь
-2: Внутренняя ошибка сервера. О ней тоже нужно куда-нибудь сообщить
-1: Отсутствие метода, к которому вы обращались
1: Неверный токен разработчика. Новый можно получить с помощью команды /api dev
2: Количество запросов исчерпано
3: Один из основных параметров не передан/указан неверно
4: Метод отключен, или не работает по каким-то другим причинам
Ошибки с кодом 10+ указывают на отсутствие запрошенного ресурса. Например: игрока, матча, гильдии.
Полезная информация
Ранги:
Ранг - Название - Префикс - Цвет
VIP - VIP - [V] - #00be00
PREMIUM - Premium - [P] - #00dada
HOLY - Holy - [H] - #ffba2d
IMMORTAL - Immortal - - #e800d5
BUILDER - Билдер - [Билдер] - #009c00
MAPLEAD - Главный билдер - [Гл. Билдер] - #009c00
YOUTUBE - YouTube - [YouTube] - #fe3f3f
ORGANIZER - Организатор - [Организатор] - #00bebe
MODER - Модератор - [Модер] - #1b00ff
WARDED - Проверенный модератор - [Пр. Модер] - #1b00ff
CHIEF - Главный модератор - [Гл. Модер] - #1b00ff
ADMIN - Главный админ - [Гл. Админ] - #00bebe
Цвета из майнкрафта в HTML:
Код цвета - цвет (и цвет в HTML)
&0 - черный (#000000)
&2 - тёмно-зелёный (#009c00)
&3 - бирюзовый (#00bebe)
&4 - бордовый (#aa0000)
&5 - фиолетовый (#aa00aa)
&6 - оранжевый (#ffba2d)
&7 - серый (#aaaaaa)
&8 - темно-серый (#555555)
&9 - синий (#1b00ff)
&a - салатовый (#00be00)
&b - голубой (#00dada)
&c - красный (#fe3f3f)
&d - розовый (#e800d5)
&e - желтый (#ffff55)
&f - белый (#ffffff)
Всего на VimeWorld существует 3 вида токенов:
DEV - используется для выполнения запросов к апи с увеличенным лимитом запросов. Можно получить по команде /api dev на сервере MiniGames.
AUTH - используется для авторизации игрока на вашем сайте или в любом другом месте. Токен действует в течение часа до первого использования. Можно получить по команде /api auth на сервере MiniGames.
LEGACY - Имеет свойства и DEV и AUTH, его можно было получить до 4-го марта 2018 года
В зависимости от отправленного токена, могут появиться/исчезнуть некоторые поля.
Ссылка на метод: https://api.vimeworld.ru/misc/token/xxx
Пример ответа:
Методы
Связанные с игроками
/user/name/:namesget
Просмотр информации по типу уровня, ранга, гильдии по никнейму
Параметры:
name* - Ник игрока, или ники игроков через запятую. Они могут содержать только латинские буквы, цифры и знак подчеркивания _.
Дополнительная информация:
Максимальное количество никнеймов в запросе - 50
/user/:idsget
Аналогичен предыдущему методу, но только получение с помощью ID
/user/:id/friendsget
Список друзей любого игрока
Параметры:
id* - ID игрока
/user/:id/sessionget
Получение онлайн статуса игрока
Параметры:
id* - ID игрока
/user/:id/statsget
Получение статистики игрока
Параметры:
id* - ID игрока
games - Выводит только статистику указанных игр. Если не нужна полная статистика игрока, то укажите только нужные игры (по ID)
Дополнительная информация:
В ответе у любой игры будет статистика за всё время (global) и сезон (season).
/user/:id/achievementsget
Получение достижений игрока
Параметры:
id* - ID игрока
Дополнительная информация:
time в ответе содержит метку времени Unix Timestamp, когда игрок получил достижение.
/user/:id/leaderboardsget
Получение мест игрока в топах
Параметры:
id* - ID игрока
/user/:id/matchesget
Получение последних матчей игрока
Параметры:
id* - ID игрока
count - количество возвращаемых записей. По умолчанию - 20, максимум - 50
offset - количество пропущенных записей. По умолчанию - 0, максимум - 2000
Дополнительная информация:
В matches->state имеется 3 статуса: 0 - поражение, 1 - победа, 2 - ничья.
/user/session/:idsget
Массовое получение статуса
Параметры:
ids* - ID игрока/игроков
Дополнительная информация:
Максимальное количество ID в запросе - 50
/user/sessionpost
Супер массовое получение статуса
Параметры:
ids* - ID игрока/игроков
Дополнительная информация:
Максимальное количество ID в запросе - 1000
Связанные с гильдиями
/guild/searchget
Поиск гильдии по тегу или названию
Параметры:
query* - запрос для поиска (2+ символов)
Дополнительная информация:
Индекс гильдий обновляется раз в 10 минут.
/guild/getget
Получение информации о гильдии
Параметры:
id / name / tag* - получение гильдии по ID/имени/тегу
unsafe - отключение проксирования картинок
Связанные с топами
/leaderboard/listget
Список всех возможных рекордов
Параметры:
отсутствуют
Дополнительная информация:
type - тип таблицы рекордов, он используется для получения конкретной таблицы рекордов в методе leaderboard/get.
description - краткое описание таблицы рекордов.
sort - список доступных вариантов таблицы рекордов.
/leaderboard/get/:type[/:sort]get
Получение таблицы рекордов
Параметры:
type* - Тип таблицы рекордов
sort - Вариант таблицы рекордов
size - количество возвращаемых записей. По умолчанию - 100, максимум - 1000
offset - количество пропущенных записей. По умолчанию - 0, максимум - 2000
Дополнительная информация:
Обновление информации происходит раз в час
Связанные с онлайном
/onlineget
Количество игроков онлайн
Параметры:
отсутствуют
Дополнительная информация:
Список всех полных названий игр можно посмотреть с помощью метода misc/games.
/online/streamsget
Список стримов, проходящих на сервере
Параметры:
отсутствуют
Дополнительная информация:
title - Заголовок стрима. Может содержать символы юникода.
owner - Ник ютубера, который добавил (ведет) стрим.
viewers - Количество зрителей стрима.
duration - Длительность стрима в секундах (время с начала стрима).
platform - Платформа, на которой идет стрим. Поддерживается YouTube, ВКонтакте, Twitch, GoodGame.
/online/staffget
Список модераторов, находящихся на сервере
Параметры:
отсутствуют
Дополнительная информация:
Информация обновляется раз в 10 сек.
Связанные с матчами
/match/:idget
Информация о матче
Параметры:
id - айди матча
Дополнительная информация:
/match/latestget
Последние матчи на сервере
Параметры:
count - Количество последних матчей, которые вернет сервер. По умолчанию - 20, максимально - 100.
Дополнительная информация:
Список обновляется раз в 10 секунд.
/match/listget
Список матчей на сервере
Параметры:
before - будут выведены все матчи, которые произошли до матча с этим ID.
after - будут выведены все матчи, которые произошли после матча с этим ID.
count - количество матчей, которые вернет сервер. По умолчанию - 20, максимально - 100.
Дополнительная информация: