Перейти к содержимому

2. Узел Webhooks

В этом уроке вы научитесь получать и обрабатывать входящие запросы, используя вебхуки

Практика

В этом уроке мы составим два workflow. Один будет отправлять случайные события из деревни Простоквашино, а другой — ловить их и отображать в Телеграме.

Для начала вам необходимо подготовиться:

  1. Откройте две (2) вкладки с новыми процессами n8n
  2. Назовите первый процесс Send request, а второй — Receive request, или как-то еще
  3. В первый импортируйте начальный процесс по ссылке https://artemdzyuba.ru/wp-content/uploads/2023/01/Webhooks_and_HTTP_Requests_1__Tasks.json
  4. Вы увидите 3 узлов Code и узел расписания для регулярного запуска workflow

Узлы Имя, Действие и Объект генерируют случайные данные, например: “Дядя Фёдор” “купил” “корову Мурку”. Наша задача — отправить эти данные во внешний мир и получить их на вебхук.

Упражнения

  1. Запустите процесс, посмотрите, какие данные генерируются.
  2. Добавьте узел HTTP Request POST-типа, укажите 3 body-параметра: имя, действие и объект, в них поместите данные из узлов. Назовите его Тестовый запрос.
  3. Во втором процессе создайте узел Webhook. В разделе Webhook URLs кликните сначала на кнопку Test URL, а потом на саму ссылку, она скопируется в буфер..
  4. Возвращайтесь в первый процесс и вставьте эту ссылку в узел Тестовый запрос. Вернитесь во второй процесс, запустите его, и у вас будет 2 минуты, чтобы запустить первый. Если всё сделано правильно, вы увидите, как вебхук получит данные по тестовому URL. Если вы запустите первый процесс без запуска второго, то получите ошибку “The resource you are requesting could not be found”.
  5. Теперь время заняться Телеграмом. Добавьте узел Telegram и укажите ваши учетные данные. Как это делается, вы можете узнать во вводном курсе. Ресурс и операцию оставьте Message и Send Message. Если вкратце:
    • с помощью бота под названием BotFather вы создаете своего бота и копируете его API токен
    • Создаете Credentials в n8n для вашего Телеграм-бота, указав ваш токен
    • Узнайте ID своего аккаунта в Телеграме. Для этого сделайте одно из двух.
      • Просто запустите бота userinfobot, и вы сразу увидите id
      • Добавьте Telegram Trigger, укажите учетные данные. Запустите workflow и напишите что-нибудь в ваш бот. Рабочий процесс должен остановиться, и в триггере появятся данные. Вам нужно число в chat → id.
    • Вставьте этот id в поле Chat ID вашего узла Telegram
    • У вас осталось незаполненным поле Text. Мы вставим в него выражения, полученные из вебхука. Об этом далее
  6. Опять запустите узел вебхука и отправьте на него тестовый запрос из первого процесса. Теперь откройте узел Телеграм и перетащите данные из Простоквашино (раздел query) в поле Text. После этого запустите узел Телеграм. Ваш Телеграм должен прислать вам сообщение, что же творится в Простоквашино.

    На этом тестирование ваших процессов завершено. Пора переходить к продакшену.
  7. Откройте вебхук и кликните по Production URL. Перейдите в первый процесс, склонируйте узел Тестовый запрос и замените в нем URL с тестового на продакшн. Назовите новый узел просто Продакшн запрос. Узел Тестовый запрос поставьте на паузу

    Настройте удобный временной интервал в узле Триггер по расписанию. Сейчас в нем установлен интервал в 5 секунд.
  8. Настало время запустить процессы в автоматическом режиме. Активируйте оба workflow. Когда надоест принимать новости от Дяди Фёдора и Ко, отключите первый процесс — тот, что отправляет сигналы.

Отметьте все решенные задачи на странице шаблона упражнений Вебхуки — узел Webhooks.

Следующий урок → Авторизация в Notion
Предыдущий урок → Отправка HTTP-запросов
К курсу → Автоматизация с n8n: теория и практика
Мои курсы выходят в открытый доступ!