Перейти к основному содержимому

Email и соцсети

Операции контактов управляют email, Telegram и социальными профилями текущего пользователя.

Email​

MutationdocumentId: sendEmailBindCodeauth: Bearer session

sendEmailBindCode​

Описание​

Отправляет код для привязки нового email к аккаунту.

Входные данные​

ПолеТипОбязательныйОписание
emailString!✓Новый email
pinString-PIN-код при включенном PIN-щите

Результат​

Тип ответа - OperationResult.

Ошибки​

  • UNAUTHENTICATED - пользователь не авторизован.
  • EMAIL_EXISTS - email уже используется.
  • RATE_LIMITED - код запрошен слишком часто.
  • INVALID_PIN - PIN-код неверный.

Пример обмена​

Запрос
documentId: sendEmailBindCode
{
"documentId": "sendEmailBindCode",
"variables": {
"email": "[email protected]",
"pin": "1234"
}
}
Ответ
200 OK
{
"data": {
"sendEmailBindCode": {
"success": true
}
}
}

Связанные типы​

MutationdocumentId: bindEmailauth: Bearer session

bindEmail​

Описание​

Подтверждает код и привязывает email к аккаунту.

Входные данные​

ПолеТипОбязательныйОписание
emailString!✓Email для привязки
codeString!✓Код подтверждения

Результат​

Тип ответа - OperationResult.

Ошибки​

  • UNAUTHENTICATED - пользователь не авторизован.
  • INVALID_CODE - код неверный или истек.
  • EMAIL_EXISTS - email уже используется.

Пример обмена​

Запрос
documentId: bindEmail
{
"documentId": "bindEmail",
"variables": {
"email": "[email protected]",
"code": "123456"
}
}
Ответ
200 OK
{
"data": {
"bindEmail": {
"success": true
}
}
}

Связанные типы​

MutationdocumentId: sendEmailConfirmCodeauth: Bearer session

sendEmailConfirmCode​

Описание​

Отправляет код подтверждения на текущий email пользователя.

Входные данные​

Операция не принимает переменные.

Результат​

Тип ответа - OperationResult.

Ошибки​

  • UNAUTHENTICATED - пользователь не авторизован.
  • EMAIL_MISSING - у пользователя не указан email.
  • RATE_LIMITED - код запрошен слишком часто.

Пример обмена​

Запрос
documentId: sendEmailConfirmCode
{
"documentId": "sendEmailConfirmCode",
"variables": {}
}
Ответ
200 OK
{
"data": {
"sendEmailConfirmCode": {
"success": true
}
}
}

Связанные типы​

MutationdocumentId: confirmEmailauth: Bearer session

confirmEmail​

Описание​

Подтверждает текущий email пользователя.

Входные данные​

ПолеТипОбязательныйОписание
codeString!✓Код подтверждения

Результат​

Тип ответа - OperationResult.

Ошибки​

  • UNAUTHENTICATED - пользователь не авторизован.
  • INVALID_CODE - код неверный или истек.

Пример обмена​

Запрос
documentId: confirmEmail
{
"documentId": "confirmEmail",
"variables": {
"code": "123456"
}
}
Ответ
200 OK
{
"data": {
"confirmEmail": {
"success": true
}
}
}

Связанные типы​

Telegram и социальные сети​

Привязка подтверждается в выбранной социальной сети. Для Telegram используется отдельный бот проекта.

MutationdocumentId: socialBindUrlauth: Bearer session

socialBindUrl​

Начинает привязку социальной сети, включая Telegram. Откройте полученный url в браузере без изменения параметров. После подтверждения браузер вернётся на /cabinet/settings/social-confirmation?code=... сайта проекта.

Входные данные​

ПолеТипОбязательныйОписание
providerString!ДаКод включённого провайдера, например telegram или google
pinStringПо настройкеPIN для защищённой привязки Telegram

Результат​

SocialAuthUrl: url и provider.

Ошибки​

  • UNAUTHENTICATED - войдите в аккаунт.
  • SOCIAL_PROVIDER_DISABLED - выбранный способ недоступен.
  • PIN_REQUIRED / INVALID_PIN - укажите действующий PIN.

Пример обмена​

Запрос
documentId: socialBindUrl
{
"documentId": "socialBindUrl",
"variables": {
"provider": "telegram",
"pin": "123456"
}
}
Ответ
200 OK
{
"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"
}
}
}
MutationdocumentId: confirmSocialBindingauth: Bearer session

confirmSocialBinding​

Завершает привязку после возврата из социальной сети. Передайте полученный code с той же Bearer-сессией, с которой вызван socialBindUrl. Код действует две минуты и используется один раз. После успеха перечитайте socialProfiles.

Входные данные​

ПолеТипОбязательныйОписание
codeString!Да64-символьный код из адреса возврата

Результат​

OperationResult с локализованным message.

Ошибки​

  • UNAUTHENTICATED - войдите в аккаунт.
  • SOCIAL_CALLBACK_FAILED - подтверждение недействительно или истекло; начните привязку заново.
  • SOCIAL_ALREADY_LINKED - профиль уже привязан; сначала отвяжите предыдущую связь.
  • SOCIAL_PROVIDER_DISABLED - выбранный способ отключён.

Пример обмена​

Запрос
documentId: confirmSocialBinding
{
"documentId": "confirmSocialBinding",
"variables": {
"code": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
}
}
Ответ
200 OK
{
"data": {
"confirmSocialBinding": {
"message": "Социальная сеть успешно привязана"
}
}
}
MutationdocumentId: unbindTelegramauth: Bearer session

unbindTelegram​

Отвязывает Telegram от текущего аккаунта. Вход через этот Telegram-профиль недоступен до новой привязки.

Входные данные​

ПолеТипОбязательныйОписание
pinStringПо настройкеPIN для защищённой отвязки Telegram

Результат​

OperationResult с локализованным message.

Ошибки​

  • UNAUTHENTICATED - войдите в аккаунт.
  • NO_TELEGRAM - Telegram не привязан.
  • PIN_REQUIRED / INVALID_PIN - укажите действующий PIN.

Пример обмена​

Запрос
documentId: unbindTelegram
{
"documentId": "unbindTelegram",
"variables": {
"pin": "123456"
}
}
Ответ
200 OK
{
"data": {
"unbindTelegram": {
"message": "Telegram успешно отвязан"
}
}
}
MutationdocumentId: unbindSocialauth: Bearer session

unbindSocial​

Отвязывает выбранный социальный профиль. Для telegram результат совпадает с unbindTelegram.

Входные данные​

ПолеТипОбязательныйОписание
providerString!ДаКод провайдера
pinStringПо настройкеPIN для защищённой отвязки Telegram

Результат​

OperationResult с локализованным message.

Ошибки​

  • UNAUTHENTICATED - войдите в аккаунт.
  • SOCIAL_NOT_FOUND - выбранная связь не найдена.
  • NO_TELEGRAM - Telegram не привязан.
  • PIN_REQUIRED / INVALID_PIN - укажите действующий PIN.

Пример обмена​

Запрос
documentId: unbindSocial
{
"documentId": "unbindSocial",
"variables": {
"provider": "google"
}
}
Ответ
200 OK
{
"data": {
"unbindSocial": {
"message": "Социальная сеть успешно отвязана"
}
}
}