Email и соцсети
Операции контактов управляют email, Telegram и социальными профилями текущего пользователя.
Email
sendEmailBindCode
Описание
Отправляет код для привязки нового email к аккаунту.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Новый email |
pin | String | - | PIN-код при включенном PIN-щите |
Результат
Тип ответа - OperationResult.
Ошибки
UNAUTHENTICATED- пользователь не авторизован.EMAIL_EXISTS- email уже используется.RATE_LIMITED- код запрошен слишком часто.INVALID_PIN- PIN-код неверный.
Пример обмена
{
"documentId": "sendEmailBindCode",
"variables": {
"pin": "1234"
}
}
{
"data": {
"sendEmailBindCode": {
"success": true
}
}
}
Связанные типы
bindEmail
Описание
Подтверждает код и привязывает email к аккаунту.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Email для привязки |
code | String! | ✓ | Код подтверждения |
Результат
Тип ответа - OperationResult.
Ошибки
UNAUTHENTICATED- пользователь не авторизован.INVALID_CODE- код неверный или истек.EMAIL_EXISTS- email уже используется.
Пример обмена
{
"documentId": "bindEmail",
"variables": {
"code": "123456"
}
}
{
"data": {
"bindEmail": {
"success": true
}
}
}
Связанные типы
sendEmailConfirmCode
Описание
Отправляет код подтверждения на текущий email пользователя.
Входные данные
Операция не принимает переменные.
Результат
Тип ответа - OperationResult.
Ошибки
UNAUTHENTICATED- пользователь не авторизован.EMAIL_MISSING- у пользователя не указан email.RATE_LIMITED- код запрошен слишком часто.
Пример обмена
{
"documentId": "sendEmailConfirmCode",
"variables": {}
}
{
"data": {
"sendEmailConfirmCode": {
"success": true
}
}
}
Связанные типы
confirmEmail
Описание
Подтверждает текущий email пользователя.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
code | String! | ✓ | Код подтверждения |
Результат
Тип ответа - OperationResult.
Ошибки
UNAUTHENTICATED- пользователь не авторизован.INVALID_CODE- код неверный или истек.
Пример обмена
{
"documentId": "confirmEmail",
"variables": {
"code": "123456"
}
}
{
"data": {
"confirmEmail": {
"success": true
}
}
}
Связанные типы
Telegram и социальные сети
Привязка подтверждается в выбранной социальной сети. Для Telegram используется отдельный бот проекта.
socialBindUrl
Начинает привязку социальной сети, включая Telegram. Откройте полученный url в браузере без изменения параметров. После подтверждения браузер вернётся на /cabinet/settings/social-confirmation?code=... сайта проекта.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
provider | String! | Да | Код включённого провайдера, например telegram или google |
pin | String | По настройке | PIN для защищённой привязки Telegram |
Результат
SocialAuthUrl: url и provider.
Ошибки
UNAUTHENTICATED- войдите в аккаунт.SOCIAL_PROVIDER_DISABLED- выбранный способ недоступен.PIN_REQUIRED/INVALID_PIN- укажите действующий PIN.
Пример обмена
{
"documentId": "socialBindUrl",
"variables": {
"provider": "telegram",
"pin": "123456"
}
}
{
"data": {
"socialBindUrl": {
"url": "https://oauth.telegram.org/auth?client_id=123456789&redirect_uri=https%3A%2F%2Fapi.mmo-web.dev%2Fauth%2Fsocial%2Ftelegram%2Fcallback&response_type=code&scope=openid%20profile%20telegram%3Abot_access&state=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&nonce=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb&code_challenge=ccccccccccccccccccccccccccccccccccccccccccc&code_challenge_method=S256",
"provider": "telegram"
}
}
}
confirmSocialBinding
Завершает привязку после возврата из социальной сети. Передайте полученный code с той же Bearer-сессией, с которой вызван socialBindUrl. Код действует две минуты и используется один раз. После успеха перечитайте socialProfiles.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
code | String! | Да | 64-символьный код из адреса возврата |
Результат
OperationResult с локализованным message.
Ошибки
UNAUTHENTICATED- войдите в аккаунт.SOCIAL_CALLBACK_FAILED- подтверждение недействительно или истекло; начните привязку заново.SOCIAL_ALREADY_LINKED- профиль уже привязан; сначала отвяжите предыдущую связь.SOCIAL_PROVIDER_DISABLED- выбранный способ отключён.
Пример обмена
{
"documentId": "confirmSocialBinding",
"variables": {
"code": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
}
}
{
"data": {
"confirmSocialBinding": {
"message": "Социальная сеть успешно привязана"
}
}
}
unbindTelegram
Отвязывает Telegram от текущего аккаунта. Вход через этот Telegram-профиль недоступен до новой привязки.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
pin | String | По настройке | PIN для защищённой отвязки Telegram |
Результат
OperationResult с локализованным message.
Ошибки
UNAUTHENTICATED- войдите в аккаунт.NO_TELEGRAM- Telegram не привязан.PIN_REQUIRED/INVALID_PIN- укажите действующий PIN.
Пример обмена
{
"documentId": "unbindTelegram",
"variables": {
"pin": "123456"
}
}
{
"data": {
"unbindTelegram": {
"message": "Telegram успешно отвязан"
}
}
}
unbindSocial
Отвязывает выбранный социальный профиль. Для telegram результат совпадает с unbindTelegram.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
provider | String! | Да | Код провайдера |
pin | String | По настройке | PIN для защищённой отвязки Telegram |
Результат
OperationResult с локализованным message.
Ошибки
UNAUTHENTICATED- войдите в аккаунт.SOCIAL_NOT_FOUND- выбранная связь не найдена.NO_TELEGRAM- Telegram не привязан.PIN_REQUIRED/INVALID_PIN- укажите действующий PIN.
Пример обмена
{
"documentId": "unbindSocial",
"variables": {
"provider": "google"
}
}
{
"data": {
"unbindSocial": {
"message": "Социальная сеть успешно отвязана"
}
}
}