Бот пишет в каналы от своего имени: сборки, заявки, алерты мониторинга. Один HTTP-запрос с токеном бота — и сообщение появляется у всех участников канала, с уведомлениями и упоминаниями.
Токен передаётся в заголовке Authorization: Bearer … и начинается с ahr_bot_. Это не личный токен API задач: бот умеет только писать в свои каналы и не видит задачи, документы и чужую переписку.
Если токен потерян или утёк, выпустите новый в настройках бота — старый перестанет работать сразу, каналы бота останутся. Токен также перестаёт работать, если бота удалили, а также если его создателя отключили или удалили из воркспейса. Во всех этих случаях приходит 401 invalid_token.
Настраивать бота может тот, кто его создал, и владелец воркспейса. Добавить бота в канал может создатель канала и владелец воркспейса, в общий чат — только владелец.
Боты не занимают места участников. На бесплатном тарифе в воркспейсе может быть один бот, на платных — 3, 5 или 10.
Что можно написать
Текст до 4000 символов с тем же форматированием, что и в приложении. Упоминание @Имя Фамилия участника канала отправит ему уведомление, как если бы написал коллега. Для ссылки в тексте появится превью.
Бот пишет только в каналы и общий чат — в личные сообщения и в архивные каналы писать нельзя. Отвечать на сообщения и читать переписку бот не умеет.
Ошибки
При ошибке приходит HTTP-статус и объект error — как в API задач. Ориентируйтесь на code, message написан для людей. В каждом ответе есть заголовок X-Request-Id.
Ответ 403
{
"error": {
"code": "not_in_chat",
"message": "Бота нет в этом канале",
"requestId": "req_01JB8D0F2H4K6M8P0R2T4V6X8Z"
}
}
Статус
Код
Когда
400
validation_error
Пустой текст или длиннее 4000 символов
400
invalid_idempotency_key
Idempotency-Key длиннее 200 символов
401
authentication_required
Нет заголовка Authorization
401
invalid_token
Токен неверный, перевыпущен или бот удалён
403
not_in_chat
Бота не добавили в этот канал
403
chat_archived
Канал в архиве — только чтение
403
chat_forbidden
Это личные сообщения
404
chat_not_found
Канала нет в воркспейсе бота
409
idempotency_conflict
Ключ уже использован с другим текстом
429
rate_limit_exceeded
Слишком много сообщений или запросов с неверным токеном
Лимиты
60 запросов на отправку в минуту на бота. Отправка во все каналы считается одним запросом. При превышении — 429 и Retry-After: 60.
С одного адреса можно сделать 30 запросов в минуту с неверным токеном, дальше API отвечает 429, не проверяя токен.
Повторы без дублей
Если ответ не дошёл, повторите запрос с тем же заголовком Idempotency-Key — в течение суток Ahora вернёт уже отправленное сообщение, а не напишет второе. Тот же ключ с другим текстом — 409 idempotency_conflict.
Ключ удобно собирать из того, о чём сообщение: номера сборки, заявки, алерта.
В ответе — созданное сообщение в том же виде, в каком его получает приложение. В примерах оно сокращено: кроме этих полей есть реакции, вложения, превью ссылки и другие. createdAt — миллисекунды Unix-времени.
Сообщение в канал
POST/chats/:chatId/messagesтокен бота
Отправляет сообщение в один канал. Бот должен быть добавлен в него.
Отправляет один и тот же текст во все каналы, куда добавлен бот, — например, после деплоя. Архивные каналы пропускаются. Если бот ни в одном канале, вернётся пустой список.