Avito указывает, что ключи для интеграции находятся в кабинете в разделе Для профессионалов → API. Для серверного подключения используются Client_id и Client_secret, по которым сервис получает OAuth2 access token. Наличие раздела и доступных методов зависит от конкретного аккаунта и условий Avito. Перед разработкой нужно проверить кабинет и выполнить живые read/write вызовы в тестовом чате.
Что искать в кабинете
Публичная страница Avito для бизнеса показывает путь к ключам и предлагает подключить Messenger API к собственной системе. В проекте DOLOROSA раздел API был доступен, а полученные ключи позволили проверить права чтения и записи сообщений.
Из этого нельзя выводить универсальное правило «достаточно профиля Pro». Условия доступа и набор scopes могут меняться. Корректный порядок такой:
- открыть раздел API в нужном аккаунте;
- проверить доступные продукты и документацию;
- получить ключи;
- протестировать требуемые методы;
- только после этого оценивать интеграцию.
Как хранить ключи
Client_secret не помещают в браузерный JavaScript, промт, репозиторий или текст статьи. Сервер читает его из защищённой переменной:
import os
client_id = os.environ["AVITO_CLIENT_ID"]
client_secret = os.environ["AVITO_CLIENT_SECRET"]Файл .env не коммитится. В рабочем окружении лучше использовать хранилище секретов и отдельного системного пользователя.
Получение токена
Пример серверного запроса без настоящих значений:
curl -X POST 'https://api.avito.ru/token/' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<CLIENT_ID>' \
--data-urlencode 'client_secret=<CLIENT_SECRET>'Ответ должен содержать access_token и срок действия. Приложение кэширует токен и обновляет его заранее. Сам токен не печатается в лог.
Какие права проверять
Для консультанта в сообщениях нужны операции чтения и отправки. В DOLOROSA живыми вызовами подтвердили messenger:read и messenger:write. Заказы относятся к отдельной группе API, поэтому доступ к Messenger не доказывает доступ к Order Management.
Проверка должна включать:
- список свежих чатов;
- чтение сообщений одного тестового чата;
- отправку тестового сообщения в согласованный диалог;
- получение заказов, если они входят в задачу;
- обработку 401, 403, 402 и 429 как разных классов ошибок.
Код 402 в рабочем проекте однажды означал исчерпание пакета обращений. Это отличается от неверного токена и не исправляется повторной авторизацией.
Client credentials и подключение чужих аккаунтов
Серверный client_credentials подходит для контура конкретного подключённого аккаунта. Если продукт должен подключать аккаунты разных клиентов, модель авторизации и согласия может отличаться. Её нужно сверить с актуальной документацией Avito и условиями приложения.
Не стоит строить массовый сервис, копируя секреты клиентов в одну таблицу без модели изоляции, ротации и отзыва.
Диагностика доступа
Удобно сделать read-only команду doctor:
ключи заданы
→ токен получен
→ account_id определён
→ Messenger read доступен
→ Messenger write проверен только в тестовом чате
→ Orders проверен отдельноКоманда выводит статусы, но скрывает значения ключей, токена, chat ID и данные клиента.
Что передать разработчику
Передавайте не ключи в мессенджере, а доступ к настроенному секрету и список разрешённых операций. Отдельно укажите тестовый профиль, способ остановить отправку и контакт сотрудника, который подтвердит результат в кабинете.
Geron Labs проверяет доступ до настройки агента. Это позволяет отделить ограничения аккаунта от ошибок кода и модели.
Читайте также: Как подключить ИИ-агента к Avito через API, Как принимать сообщения и события заказов Avito: webhook или polling.
Источники
- Avito для бизнеса: avito.akamaized.net/business/tools/messenger (проверено 28.09.2026).