Skip to content

Photo upload URL does not contain photoIds — MAX больше не присылает photoIds в ссылке загрузки фото #108

Description

@ChubAV

Описание

С конца сентября все отправки сообщений с фото падают в UploadService.upload_photo ещё до загрузки файла:

  File ".../pymax/api/uploads/service.py", line 79, in upload_photo
    photo_id = str(parse_qs(parsed_url.query)["photoIds"][0])
KeyError: 'photoIds'

The above exception was the direct cause of the following exception:
...
pymax.exceptions.UploadError: Photo upload URL does not contain photoIds

MAX перестал добавлять параметр photoIds в ссылку, которую возвращает PHOTO_UPLOAD. Ссылка теперь выглядит так: https://iu.oneme.ru/uploadImage?r=<token>. При этом photo_id в upload_photo нужен только как ключ, чтобы найти токен в ответе на POST.

Что видно в продакшене

  • MAX переходил на новый формат постепенно: первые такие ошибки появились 25.09.2026, а с 02.10.2026 падают 100% отправок с фото.
  • Сообщения без вложений уходят нормально.
  • У нас ничего не менялось: образ и версия библиотеки те же, что работали до 25.09.
  • 2.4.1 не помогает: там тот же поиск по parse_qs(...)["photoIds"][0].

Окружение

  • maxapi-python 2.3.1 (в 2.4.1 код upload_photo тот же)
  • Python 3.12

Исправление

PR #107 исправляет ровно этот случай. В нём токен берётся из единственной записи ответа загрузки, а если записей ноль или больше одной, поднимается ошибка. Мы поставили у себя такую же логику патчем: если photoIds в ссылке есть, токен ищется по нему, как раньше, а если нет, берётся единственная запись. Будет здорово, если PR #107 примут и выпустят релиз.

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