Вебхук — это ваш адрес, на который мы делаем POST, когда на подключённом аккаунте что-то происходит: приходит сообщение, добавляется контакт, аккаунт требует внимания. Он заменяет опрос в цикле, а в API с ограничениями это не вопрос вкуса, а разница между «работает» и «не работает».
Проверяйте подпись. Каждый раз.
Ваша точка приёма стоит в открытом интернете, и всё, что до неё дотянется, может отправить туда что угодно. Каждая доставка несёт подпись, вычисленную из секрета, который есть только у вас и у нас; проверьте её до чтения тела и сравнивайте за постоянное время, а не сравнением строк, которое выходит на первом же различии.
Рассчитывайте получить одно и то же событие дважды
Доставка — не менее одного раза. Если ваша точка приёма медленная, вернула 500 или просто так выглядит, то же событие придёт снова. Это не сбой, о котором надо сообщать; это договор. Сделайте обработчик идемпотентным, и проблема исчезнет.
Отвечайте 200 быстро, а работу делайте после. Обработчик, который десять секунд зовёт другие API, прежде чем ответить, — это обработчик, который повторят, пока он ещё работает.
Частые вопросы
У моего ассистента нет сервера. Могут ли к нему приходить вебхуки?
Да — через входящие вашего ИИ: вебхук, который мы держим для вашего ИИ, а не отправляем куда-то. В нём хранится каждое событие в ваших подключённых аккаунтах за 30 дней, и ассистент или агент комнаты с отмеченным MakeHybrid читает его по запросу.
Может ли вебхук запустить ИИ-агента в проектной комнате?
Напрямую нет, потому что комнаты отвечают на сообщения. Обработчик вашего вебхука может войти в комнату как внешний ИИ-агент и написать туда событие, упомянув агента, который должен на него отреагировать.