Для разработчиков

Чек-лист запуска

Авторизация проходит через диалог с ботом: сотрудник пишет боту, бот отвечает кнопкой, сотрудник соглашается, и бот получает токен. Поэтому ломается она чаще всего не на OAuth, а на настройках вокруг него. Пройдите список перед запуском бота и вернитесь к нему, если на этом пути что-то не срабатывает.

Сотрудник может написать боту

  • Бот публичный, у сотрудника есть с ботом общий чат, или бот написал сотруднику первым. Переключатель Публичный бот — на вкладке Основное в карточке бота.
  • Публикация в витрине сама по себе написать боту не позволяет.

Без этого у бота нет кнопки Сообщение. Подробнее — в разделе Личные сообщения.

Бот узнаёт о сообщении

  • Исходящий вебхук включён и указывает на ваш сервер.
  • Включено событие Новые сообщения в режиме Любые сообщения или с командой, с которой начинается разговор, например /start.
  • Сервер проверяет подпись запросов, а бот игнорирует свои сообщения.

Без вебхука и нужного режима сотрудник пишет, а бот молчит: новый бот слушает только команды, а их список пуст. Как настроить — в разделе Общение с ботом.

Бот отвечает кнопкой

  • У бота есть токен с правом messages:create.
  • Кнопка ведёт на экран согласия. Как её собрать — в разделе Получение токена.

Без права отправки метод POSTНовое сообщение ответит 403, и кнопка до сотрудника не дойдёт. Подробнее о правах — в разделе Токены бота.

Авторизация проходит

  • Сотрудникам разрешено выдавать доступ ботам: в настройках пространства Кто может создавать персональные токены — Все сотрудники. По умолчанию там Только администраторы, и тогда сотрудник вместо согласия видит отказ.
  • Авторизация на вкладке OAuth включена, указан хотя бы один адрес возврата.
  • Запрашиваемый доступ задан: в нём только права, которые боту действительно нужны.
  • Приложение без секрета передаёт PKCE с методом S256, серверное хранит client_secret и обменивает код на своей стороне.

Без этого сотрудник не дойдёт до согласия или бот не сможет обменять код на токен. Настройки вкладки — в разделе Настройка авторизации, ошибки обмена — в разделе Ошибки и отказы.