Skip to content

SMS-код не доставляется после успешного AUTH_REQUEST в Client #99

Description

@ShiroKSH

Описание

При первом входе через Client запрос SMS-кода завершается без API-ошибки: mobile handshake проходит, AuthService.request_code() возвращает StartAuthResponse с token и request_max_duration=60. После этого код не приходит ни по SMS на российский номер +7, ни уведомлением в уже авторизованное мобильное приложение MAX.

QR-авторизация через WebClient для того же аккаунта и через тот же российский HTTP CONNECT proxy работает.

Шаги для воспроизведения

  1. Использовать новый work_dir без сохранённой сессии.
  2. Запустить Client с российским номером:
import asyncio

from pymax import Client, ExtraConfig
from pymax.api.session.enums import DeviceType

client = Client(
    phone="+7XXXXXXXXXX",
    work_dir="cache",
    app_version="26.28.0",
    extra_config=ExtraConfig(
        device_type=DeviceType.DESKTOP,
        proxy="http://user:password@proxy.example:5500",
    ),
)

asyncio.run(client.start())
  1. Дождаться запроса кода в SmsCodeProvider.
  2. Подождать больше возвращённого request_max_duration.

Повторный AUTH_REQUEST с типом RESEND после серверного таймера также принимается без ошибки, но код не доставляется.

Ожидаемый результат

Код приходит по SMS либо в официальное приложение MAX и может быть передан в SmsCodeProvider до истечения auth-token.

Фактический результат

Flow ожидает код, но пользователь его нигде не получает. Авторизация по телефону завершиться не может.

Очищенный фрагмент лога:

INFO | pymax.api.session.service | mobile handshake completed
INFO | pymax.app | saved session not found; authentication required
INFO | pymax.auth.sms | starting sms authentication
INFO | pymax.api.auth.service | requesting sms code phone_set=True

Дополнительно

  • maxapi-python==2.4.1
  • Python 3.13
  • Linux-контейнер Pterodactyl; хост находится в Германии
  • только трафик MAX идёт через аутентифицированный HTTP CONNECT proxy с российским выходным IP
  • через этот же proxy успешно проходят handshake, QR-вход и дальнейшая работа с MAX
  • номер зарегистрирован в MAX; QR-вход в этот же аккаунт успешен
  • воспроизводится с чистым каталогом сессии

Это не тот же случай, что #39: там request_code завершался service.unavailable, здесь запрос принимается и возвращает auth-token, но канал доставки кода не срабатывает.

Подскажите, требует ли текущий mobile flow другой device_type/app_version, дополнительное поле запроса или отдельное переключение канала доставки. Если для актуального API обязателен RESEND, возможно, его стоит поддержать в стандартном SmsAuthFlow.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions