Подключение любого сайта через вебхук
Содержание
Кому подходит
Если ваш сайт работает не на WordPress, Битриксе, InSales или Joomla — статьи можно доставлять вебхуком. Мы отправляем готовую статью POST-запросом на адрес, который вы указали, а небольшой обработчик на вашей стороне сохраняет её так, как принято в вашем проекте.
Публикация на произвольный сайт доступна на тарифах от Starter, а также на пробном периоде.
Шаг 1. Добавьте сайт
- Откройте Сайты → Добавить сайт.
- Выберите платформу Любой сайт.
- Укажите название, адрес сайта и адрес будущего обработчика — например
https://ваш-сайт.ru/api/seowriter. - Нажмите Сохранить и получить ключ.
Сразу после сохранения мы покажем секретный ключ. Он виден целиком один раз — скопируйте его и положите в настройки своего сайта. Порядок именно такой: без ключа обработчик не написать, поэтому проверка подключения идёт последним шагом, а не первым.
Шаг 2. Поставьте обработчик
Возьмите готовый файл под свой стек — ссылки на них есть на экране с ключом и в настройках сайта:
- Next.js — роут для App Router;
- PHP — один файл, кладётся в корень сайта;
- Laravel — контроллер и маршрут;
- Python — view для Django и вариант для FastAPI.
Можно поручить задачу ИИ-ассистенту: на странице «Публикация на любой сайт» есть готовое задание для Claude Code, Cursor или Codex — оно описывает контракт без секретов, и ассистент встроит обработчик по правилам вашей кодовой базы.
Ключ добавьте в переменные окружения проекта под именем SEOWRITER_SECRET и перезапустите приложение.
Шаг 3. Проверьте подключение
Вернитесь в Настройки сайта и нажмите Проверить подключение — мы отправим проверочный запрос и покажем, что ответил ваш сервер. Затем нажмите Отправить пробную статью: придёт настоящее событие с демонстрационным содержимым, но месячный лимит статей при этом не расходуется.
Что приходит в запросе
В теле запроса не только HTML. Отдельными полями приезжают заголовок и H1, ЧПУ, мета-заголовок и описание, обложка и картинки ссылками, вопросы с ответами для блока FAQ, микроразметка Schema.org, категория и постоянный идентификатор статьи.
Идентификатор article.id не меняется между отправками — ищите запись по нему и обновляйте, тогда повторная доставка не создаст дубль.
Что стоит вернуть в ответе
Достаточно кода 200. Но если вернуть {"ok": true, "url": "адрес статьи"}, у вас заработают внутренняя перелинковка между статьями, отправка в IndexNow и анонсы в соцсетях — все они опираются на адрес опубликованной страницы.
Требования к обработчику
- Отвечайте быстро, а тяжёлую обработку выносите в фоновую задачу — мы ждём ответа тридцать секунд.
- Обрабатывайте оба события:
article.publishedиarticle.updated. Через обновление приезжает обложка, если её дорисовали уже после публикации. - Не отвечайте переадресацией — она считается ошибкой доставки.
- Если сайт за nginx, поднимите
client_max_body_sizeхотя бы до 5 МБ: длинная статья не помещается в стандартный лимит в один мегабайт. - Следите за синхронизацией часов на сервере — от времени зависит проверка подписи.
Смена ключа
Ключ можно перевыпустить в настройках сайта. Сутки после этого запросы подписываются старым и новым ключом одновременно, чтобы обработчик успел обновиться без простоя. Поэтому обработчик обязан проверять все подписи из заголовка, а не только первую.
Секретный ключ для подписи запросов можно сгенерировать здесь же: генератор секретных ключей. Он работает прямо в браузере и никуда ключ не отправляет.
В этом разделе
Была ли статья полезна?