Начало работы
Конечная точка API
https://api.serverchichi.online/
Для начала работы с API вам необходимо создать приложение и получить его APP_UUID и APP_SECRET_TOKEN. С их помощью вы сможете посылать запросы на сервер. Создать новое приложение можно в настройках профиля по ссылке: https://serverchichi.online/account/settings?tab=apps
Все запросы разделены на 3 уровня доступа: Низкий, Средний, Высокий.
Низкий уровень - Методы доступны всем даже без регистрации приложения в системе
Средний уровень - Методы доступны только приложениям зарегистрированным в системе
Высокий уровень - Методы доступны только приложениям зарегистрированным в системе, а так же прошедшие дополнительную проверку администрацией
Корректное создание sign запроса:
sha256({"minecraft_nickname":"Ryzzi00"}.APP_SECRET_TOKEN);
Многие запросы требуют специального поля - sign, что это такое? Это контрольная строка которая позволяет серверу и вашему приложению понять, что ответ или запрос не подделаны и отправлены первоисточником.
Все sign генерируются по определенном порядке для каждого запроса и ответа. В нем всегда содержится строка JSON запроса или ответа, а так же APP_SECRET_TOKEN разделенные точкой. После чего строка хешируется с помощью sha256. При разработке своих приложений ОБЯЗАТЕЛЬНО выполняйте проверку подписи!
Sign не должен содержать APP_UUID! Все поля должны идти в правильном порядке в соответствии с документацией для используемой версии API!
Колличество запросов с одного приложения ограничено 200 запросами в минуту.
Аккаунт
GET/account/getInfo
Уровень доступа: Высокий
Пример запроса:
{
minecraft_nickname: "Ryzzi00",
app_uuid: "02a4ac16-e17f-40a4-abb1-70f99a522219",
sign: "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
Этот запрос позволяет получить всю информацию об аккаунте игрока. Для этого нужно отправить GET-запрос на следующий адрес:
https://api.serverchichi.online/v1/account/getInfo
Пример ответа:
{
"status": "success",
"response": {
"user_id": 13,
"minecraft_nickname": "Ryzzi00",
"sch_plus": 2,
"social_links": {
"telegram": "https://t.me/ryzzi00_channel",
"twitch": "https://www.twitch.tv/ryzzi00",
"youtube": "https://www.youtube.com/@ryzzi00"
},
"server_statistics": {
"total_playtime": 0,
"total_advancements": 0,
"last_online": "2000-01-01T00:00:00.000Z"
},
"activity": {
"register_date": "2000-01-01T00:00:00.000Z",
"last_login_date": "2999-12-31T23:59:59.000Z"
}
},
"sign": "d00ade7ae3f50fc077545fb65b854955fd72a1d60c56e590b2c564ed35d13ce3"
}
Параметры запроса
| Поле | Тип | Описание |
|---|---|---|
| minecraft_nickname | String | Ник игрока |
| app_uuid | String | UUID приложения |
| sign | String | Хеш-подпись запроса |
Параметры ответа
| Поле | Тип | Описание |
|---|---|---|
| status | String | Статус запроса, успешен или нет |
| user_id | Number | Уникальный ID игрока на сайте |
| sch_plus | Null|String | Информация об уровне СЧ+ на сервере: null - СЧ+ отсутствует 1 - СЧ+ 1 уровня 2 - СЧ+ 2 уровня |
| social_links | Object | Обьект содержащий ссылки на социальные сети |
| server_statistics | Object | Обьект содержащий статистику на сервере total_playtime - Колличество времени проведенного на сервере (значение в игровых тиках) total_advancements - Колличество полученных достижений last_online - Дата последнего захода на сервер |
| activity | Object | Обьект содержащий активность аккаунта register_date - Дата регистрации на сайте last_login_date - Дата последнего захода в аккаунт |
| sign | String | Хеш-подпись ответа |
GET/account/resetPassword
Уровень доступа: Высокий
Пример запроса:
{
minecraft_nickname: "Ryzzi00",
app_uuid: "02a4ac16-e17f-40a4-abb1-70f99a522219",
sign: "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
Этот запрос позволяет получить ссылку, перейдя по которой игрок сможет установить новый пароль. Для этого нужно отправить GET-запрос на следующий адрес:
https://api.serverchichi.online/v1/account/resetPassword
Пример ответа:
{
"status": "success",
"response": {
"minecraft_nickname": "Ryzzi00",
"reset_url": "https://serverchichi.online/account/reset?t=ffdf14c79270bb06a5c72fc48db77859"
},
"sign": "306026a61a89f1117e5b421782e790491eb97e190c9554361b47a90ed87de297"
}
Параметры запроса
| Поле | Тип | Описание |
|---|---|---|
| minecraft_nickname | String | Ник игрока |
| app_uuid | String | UUID приложения |
| sign | String | Хеш-подпись запроса |
Параметры ответа
| Поле | Тип | Описание |
|---|---|---|
| status | String | Статус запроса, успешен или нет |
| minecraft_nickname | String | Ник игрока |
| reset_url | String | Ссылка, по которой должен перейти игрок для сброса пароля |
| sign | String | Хеш-подпись ответа |
PUT/account/create
Уровень доступа: Высокий
Пример запроса:
{
"minecraft_nickname": "newplayer123",
"password": "securepassword123",
"app_uuid": "02a4ac16-e17f-40a4-abb1-70f99a522219",
"sign": "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
Этот запрос позволяет создать новый аккаунт игрока. Для этого нужно отправить PUT-запрос на следующий адрес:
https://api.serverchichi.online/v1/account/create
Пример ответа:
{
"status": "success",
"response": {
"minecraft_nickname": "newplayer123",
"user_id": 12345
},
"sign": "306026a61a89f1117e5b421782e790491eb97e190c9554361b47a90ed87de297"
}
Параметры запроса
| Поле | Тип | Описание |
|---|---|---|
| minecraft_nickname | String | Ник игрока (1-16 символов) |
| password | String | Пароль аккаунта (минимум 6 символов) |
| app_uuid | String | UUID приложения |
| sign | String | Хеш-подпись запроса |
Параметры ответа
| Поле | Тип | Описание |
|---|---|---|
| status | String | Статус запроса, успешен или нет |
| minecraft_nickname | String | Ник игрока |
| user_id | Number | Уникальный ID созданного аккаунта |
| sign | String | Хеш-подпись ответа |
Валидация
- minecraft_nickname: Должен быть строкой длиной от 1 до 16 символов
- password: Должен быть строкой длиной от 6 до 128 символов
- app_uuid: Должен быть валидным UUID
- sign: Должен быть валидной подписью для полей minecraft_nickname и password
Ошибки
- 2001: Аккаунт с таким никнеймом уже существует
- 105: Отсутствуют обязательные поля
- 106: Неверные типы данных
- 107: Неверная длина полей
- 103: Неверная подпись
PUT/player/updateStats
Уровень доступа: Высокий
Пример запроса:
{
"minecraft_nickname": "Ryzzi00",
"player_group": 2,
"total_playtime": 72000,
"total_advancements": 15,
"online_status": "yes",
"app_uuid": "02a4ac16-e17f-40a4-abb1-70f99a522219",
"sign": "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
Этот запрос позволяет обновить статистику игрока на сервере. Для этого нужно отправить PUT-запрос на следующий адрес:
https://api.serverchichi.online/v1/player/updateStats
Пример ответа:
{
"status": "success",
"response": {
"minecraft_nickname": "Ryzzi00",
"updated": true
},
"sign": "306026a61a89f1117e5b421782e790491eb97e190c9554361b47a90ed87de297"
}
Параметры запроса
| Поле | Тип | Описание |
|---|---|---|
| minecraft_nickname | String | Ник игрока |
| player_group | Number | Уровень SCH Plus (0, 1, 2) |
| total_playtime | Number | Общее время игры в игровых тиках (должно быть >= 0) |
| total_advancements | Number | Количество полученных достижений (должно быть >= 0) |
| online_status | String | Статус игрока в сети ("yes" или "no") |
| app_uuid | String | UUID приложения |
| sign | String | Хеш-подпись запроса |
Параметры ответа
| Поле | Тип | Описание |
|---|---|---|
| status | String | Статус запроса, успешен или нет |
| minecraft_nickname | String | Ник игрока |
| updated | Boolean | Подтверждение успешного обновления статистики |
| sign | String | Хеш-подпись ответа |
Ошибки
Пример ошибки:
{
status: "error",
error_code: "101",
error_description: "Invalid request method",
request_fields_error: [
minecraft_nickname
],
request_detail: {
method: "/v1/account/getResetURL",
type: "POST",
request: {
app_uuid: "02a4ac16-e17f-40a4-abb1-70f99a522219",
sign: "7279e798d8f8cc6c64f38f955f88b9188e6923eb6d75a562dbace92171889086"
}
}
}
Здесь вы найдете общие ошибки для всех методов, которые могут возникнуть при работе с API:
| Код ошибки | Описание |
|---|---|
| 100 | Метод API не существует |
| 101 | Неверный метод запроса |
| 102 | Версия API которую вы используете в запросе, устарела или не существует |
| 103 | Sign не совпадает, возможно ошибка в генерации |
| 104 | Отсутствуют поля запроса |
| 105 | Один или несколько обязательных полей запроса пропущены |
| 106 | Некорректное значение одного из полей |
| 500 | Внутренняя ошибка сервера |
| 1000 | Приложения с таким UUID не существует |
| 1001 | Ошибка в UUID приложения |
| 2000 | Игрок с таким ником не найден |
| 2001 | Аккаунт с таким ником уже существует |