Описание
При первом входе через Client запрос SMS-кода завершается без API-ошибки: mobile handshake проходит, AuthService.request_code() возвращает StartAuthResponse с token и request_max_duration=60. После этого код не приходит ни по SMS на российский номер +7, ни уведомлением в уже авторизованное мобильное приложение MAX.
QR-авторизация через WebClient для того же аккаунта и через тот же российский HTTP CONNECT proxy работает.
Шаги для воспроизведения
- Использовать новый
work_dir без сохранённой сессии.
- Запустить
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())
- Дождаться запроса кода в
SmsCodeProvider.
- Подождать больше возвращённого
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.
Описание
При первом входе через
Clientзапрос SMS-кода завершается без API-ошибки: mobile handshake проходит,AuthService.request_code()возвращаетStartAuthResponseс token иrequest_max_duration=60. После этого код не приходит ни по SMS на российский номер+7, ни уведомлением в уже авторизованное мобильное приложение MAX.QR-авторизация через
WebClientдля того же аккаунта и через тот же российский HTTP CONNECT proxy работает.Шаги для воспроизведения
work_dirбез сохранённой сессии.Clientс российским номером:SmsCodeProvider.request_max_duration.Повторный
AUTH_REQUESTс типомRESENDпосле серверного таймера также принимается без ошибки, но код не доставляется.Ожидаемый результат
Код приходит по SMS либо в официальное приложение MAX и может быть передан в
SmsCodeProviderдо истечения auth-token.Фактический результат
Flow ожидает код, но пользователь его нигде не получает. Авторизация по телефону завершиться не может.
Очищенный фрагмент лога:
Дополнительно
maxapi-python==2.4.1Это не тот же случай, что #39: там
request_codeзавершалсяservice.unavailable, здесь запрос принимается и возвращает auth-token, но канал доставки кода не срабатывает.Подскажите, требует ли текущий mobile flow другой
device_type/app_version, дополнительное поле запроса или отдельное переключение канала доставки. Если для актуального API обязателенRESEND, возможно, его стоит поддержать в стандартномSmsAuthFlow.