For the complete documentation index, see llms.txt. This page is also available as Markdown.

Получение мастер-аккаунта

Описание

Endpoint возвращает данные одного мастер-аккаунта проекта, к которому привязан ваш Application Token.

Аккаунт можно найти по одному из трёх идентификаторов: user_id, email или phone. Набор полей в ответе совпадает с полями элемента списка из endpoint'а Список мастер-аккаунтов, поэтому оба endpoint'а можно обрабатывать одной моделью данных.

Вы можете использовать данный endpoint для:

  • Проверки существования аккаунта перед начислением баланса или выдачей предметов

  • Получения user_id по email или телефону из внешней системы

  • Отображения профиля игрока в CRM, службе поддержки или боте

Endpoint возвращает персональные данные пользователя (email, телефон, IP). Выдавайте право Получение мастер аккаунта (v2) только тем ключам, которым оно действительно необходимо.


Endpoint

GET https://api.mmoweb.biz/v2/master-account

Требуемое разрешение ключа: Получение мастер аккаунта (v2)


Параметры

Все параметры передаются в строке запроса (query string). Необходимо передать хотя бы один идентификатор.

Параметр
Тип
Обязателен
Формат
Описание

user_id

integer

Да, если не переданы email и phone

Целое число ≥ 1

Идентификатор мастер-аккаунта

email

string

Да, если не переданы user_id и phone

Валидный email без пробелов

Email мастер-аккаунта

phone

string

Да, если не переданы user_id и email

Только цифры, от 7 до 18 символов, первая цифра не 0

Телефон мастер-аккаунта

Приоритет идентификаторов. Если передано несколько параметров, используется первый непустой в порядке user_id → email → phone, остальные игнорируются. Например, при запросе ?user_id=123&email=user@example.com поиск выполняется только по user_id.

Формат телефона. Передавайте телефон одной строкой цифр: код страны и номер, без +, пробелов, скобок и дефисов. Например, +7 (900) 123-45-67 передаётся как 79001234567. Код страны обязателен и должен совпадать с тем, что указан у пользователя.


Кодировка

Запрос

  • Значения параметров передаются в кодировке UTF-8 и должны быть URL-кодированы (percent-encoding), как и любые данные в query string.

  • Символ + в email обязательно кодируйте как %2B. Незакодированный + в query string читается как пробел, и такой email не пройдёт проверку.

  • Символ @ допускается как в исходном виде, так и в виде %40.

  • Пробелы в значениях не допускаются, в том числе по краям.

Исходное значение
Значение в query string

user@example.com

email=user%40example.com или email=user@example.com

user+promo@example.com

email=user%2Bpromo%40example.com

+7 (900) 123-45-67

phone=79001234567 (после очистки от нецифровых символов)

Стандартные средства формирования query string кодируют значения автоматически: URLSearchParams в JavaScript, http_build_query() в PHP, --data-urlencode в cURL.

Ответ

Ответ возвращается в формате JSON в кодировке UTF-8 с заголовком Content-Type: application/json.


Примеры

Поиск по user_id

Поиск по email

Поиск по телефону


Ответы

Успешный ответ (200 OK)

Поля аккаунта:

Поле
Тип
Описание

id

integer

Идентификатор мастер-аккаунта

email

string | null

Email

phone

string | null

Телефон. "0" означает, что телефон не указан

shield

integer

Включена ли дополнительная защита аккаунта (1 — да, 0 — нет)

affiliate

integer

Идентификатор пригласившего аккаунта, 0 — реферал не установлен

select_lid

integer

Идентификатор выбранного логин-сервера

select_sid

integer

Идентификатор выбранного игрового сервера

project_id

integer

Идентификатор проекта

status

integer

Статус аккаунта (0 — активный, 1 — email не подтверждён, 2 — заблокирован)

desc_status

string | null

Сообщение, которое видит пользователь при блокировке

created_at

string

Дата регистрации в формате YYYY-MM-DD HH:MM:SS

last_login

string | null

Дата последнего входа в формате YYYY-MM-DD HH:MM:SS

last_ip

string | null

IP-адрес последнего входа

email_valid

integer

Подтверждён ли email (1 — да, 0 — нет)

lang

string | null

Язык интерфейса пользователя

iso

string | null

ISO-код страны

telegram

string | null

Telegram пользователя

Не передан идентификатор (400 Bad Request)

Когда встречается: в запросе нет ни одного из параметров user_id, email, phone, либо все они пустые

Неверный формат параметра (400 Bad Request)

Когда встречается: user_id не является целым числом ≥ 1, email не является валидным адресом либо phone содержит символы кроме цифр, начинается с 0 или не подходит по длине. В message возвращается объект, где ключ — имя параметра, а значение — описание ошибки

Аккаунт не найден (404 Not Found)

Когда встречается: в проекте нет мастер-аккаунта с указанным идентификатором

Недостаточно прав (403 Forbidden)

Когда встречается: у Application Token не включено разрешение Получение мастер аккаунта (v2)


Коды ошибок

Код
HTTP Status
Описание
Что делать

VALIDATION_ERROR

400

Не передан идентификатор или он не соответствует формату

Передайте один из user_id, email, phone в формате из раздела «Параметры»

USER_NOT_FOUND

404

Аккаунт с таким идентификатором не найден в проекте

Проверьте идентификатор; для телефона убедитесь, что код страны указан так же, как у пользователя

ACCESS_DENIED

403

У токена нет разрешения на этот endpoint

Включите разрешение Получение мастер аккаунта (v2) для ключа в панели администратора

Ошибки аутентификации (EMPTY_TOKEN, INVALID_TOKEN, TOKEN_NOT_FOUND, TOKEN_DISABLED) общие для всех endpoint'ов API v2 и описаны во введении.


Важные особенности

Только текущий проект

Токен привязан к одному проекту. Endpoint ищет аккаунт только среди мастер-аккаунтов этого проекта, параметра для выбора проекта нет. Для аккаунта другого проекта вернётся USER_NOT_FOUND.

Один запрос — один аккаунт

Endpoint всегда возвращает ровно один аккаунт или ошибку USER_NOT_FOUND. Для получения нескольких аккаунтов используйте Список мастер-аккаунтов.

Телефон — только цифры

Запрос с +, пробелами, скобками или дефисами в phone отклоняется с VALIDATION_ERROR. Очищайте номер от нецифровых символов на своей стороне перед вызовом, как показано в примерах. Значение 0 не принимается: по нему нельзя найти аккаунт без телефона.

Сравнение email

Регистр букв в email не учитывается: User@Example.com и user@example.com находят один и тот же аккаунт. Алиасы вида user+promo@example.com и user@example.com считаются разными адресами.


Рекомендации

Безопасность:

  • Храните Application Token на сервере и никогда не передавайте его в браузер или мобильное приложение

  • Не логируйте ответ endpoint'а целиком: он содержит персональные данные пользователя

  • Используйте HTTPS для всех запросов

Надёжность:

  • Предпочитайте поиск по user_id: он однозначен и не зависит от формата email или телефона

  • Обрабатывайте USER_NOT_FOUND как штатный результат, а не как сбой

  • Реализуйте retry logic с экспоненциальной задержкой при ошибках 5xx и сетевых сбоях

Интеграция:

  • Формируйте query string стандартными средствами языка, чтобы не ошибиться с кодированием + и @

  • Сохраняйте user_id на своей стороне после первого успешного поиска по email или телефону

  • Убедитесь, что токен приложения имеет разрешение Получение мастер аккаунта (v2)

Last updated

Was this helpful?