Evolution

Создание Telegram-бота без написания кода с помощью n8n на основе Container Apps или Notebooks

Эта статья полезна?

С помощью этого руководства вы развернете платформу для создания рабочих процессов без написания кода и создадите Telegram-бота, который будет повторять сообщения пользователя.

Вы можете развернуть платформу на основе сервиса Container Apps или Notebooks.

Вы будете использовать следующие сервисы:

  • Container Apps — сервис для запуска контейнерных приложений в облаке. Не требует знания Kubernetes и создания виртуальных машин.

  • Notebooks — сервис для запуска сред ML и работы DS-специалистов в ноутбуках на платформе Evolution.

  • Object Storage — объектное S3-хранилище с бесплатным хранением файлов, объемом до 15 ГБ. Будет использоваться в качестве постоянного хранилища для запущенного контейнера.

  • n8n — платформа с открытым кодом для автоматизации рабочих процессов и интеграции сервисов. Подходит для экспериментов и пет-проектов.

Шаги:

Перед началом работы

Если вы уже зарегистрированы, войдите под своей учетной записью.

1. Создайте бакет в сервисе Object Storage


В сервисе Object Storage создайте новый бакет со следующими параметрами:

  • Название<your_name>-n8n, например name-n8n.

  • Доменное имя<your_name>-n8n, например name-n8n.

  • Класс хранения по умолчаниюСтандартный.

  • Максимальный размер — отключите или укажите на свое усмотрение.

Убедитесь, что в личном кабинете на странице сервиса Object Storage:

  • в списке бакетов отображается созданный вами бакет;

  • класс хранения — Стандартный.

2. Создайте контейнер / ноутбук с образом n8n


В личном кабинете создайте контейнер n8n из готового образа с помощью Container Apps:

  1. Перейдите на страницу сервиса Container Apps, выберите Container Services и нажмите Создать.

  2. Укажите Название создаваемого Container Service, например container-app-n8n-name.

  3. Включите Тестовый образ и выберите Ворклфлоу-приложение на n8n. На вкладке Общие параметры отобразятся параметры тестового образа:

    • Конфигурация0.2 vCPU - 512 RAM.

    • Название контейнера, например n8n-container.

    • Порт контейнера5678.

    ../_images/test_image_n8n_container.webp

    Тестовый образ содержит следующие переменные:

    • КлючN8N_PROTOCOL, Значениеhttps.

    • КлючN8N_HOST, Значение<container_app_name>.containerapps.ru, например container-app-n8n-name.containerapps.ru.

    • КлючWEBHOOK_URL, Значениеhttps://<container_app_name>.containerapps.ru, например https://container-app-n8n-name.containerapps.ru.

    • КлючGENERIC_TIMEZONE, ЗначениеEurope/Moscow или другая временная зона.

    Переменные не отображаются в мастере создания контейнера.

  4. На вкладке Тома создайте новый том со следующими параметрами:

    • ТипПостоянный.

    • Название — например n8n-volume.

    • Бакет из Object Storage — выберите бакет сервиса Object Storage, который вы создали на шаге 1.

    • Путь (path)/synced/n8n.

    ../_images/container-volume.webp
  5. Нажмите Следующий шаг.

  6. В поле Мин. кол-во экземпляров укажите значение 1.

  7. Нажмите Создать.

  8. Убедитесь, что в личном кабинете на странице созданного Container Service:

    • отображается одна ревизия;

    • статус ревизии — «Создается».

  9. Дождитесь, когда статус ревизии изменится на «Выполняется».

../_images/container-exist.png

3. Зарегистрируйте бота в Telegram

Для работы вам потребуется зарегистрировать нового бота в Telegram и получить токен для него.

  1. В Telegram найдите бота BotFather.

  2. Выполните команду /newbot.

  3. Задайте для бота имя (name) и имя пользователя (username).

    Имя пользователя должно оканчиваться на Bot или _bot.

    В нашем случае:

    • name: new-bot

    • username: nocodelabbot

В результате вы получите токен. Сохраните его — он потребуется на следующих этапах.

Внимание

Токен является секретом. Не публикуйте его и не передавайте третьим лицам.

4. Запустите n8n


Со страницы созданного на шаге 2 Container Service:

  1. Нажмите на публичный URL.

    Откроется интерфейс сервиса n8n с формой регистрации нового пользователя.

  2. Заполните поля формы регистрации и нажмите Next.

  3. В следующих окнах нажмите Get Started и Skip.

После регистрации в n8n вы будете перенаправлены в веб-интерфейс n8n.

5. Настройте параметры подключения к Telegram

В личном кабинете n8n создайте и настройте учетные данные для подключения к Telegram:

  1. В правом верхнем углу личного кабинета раскройте меню Create Workflow и выберите Create Credentials.

  2. В следующем окне в качестве типа создаваемой учетной записи выберите Telegram API и нажмите Continue.

    Откроется диалоговое окно создания учетной записи.

  3. В поле Access Token вставьте токен бота, полученный на шаге 3.

    ../_images/n8n-token.png
  4. В правом верхнем углу диалогового окна нажмите Save.

  5. Дождитесь, когда вверху окна появится подтверждение об успешном тестовом подключении, и закройте диалоговое окно.

Внимание

При ошибках в работе n8n обращайтесь к документации разработчика n8n.

6. Создайте триггер Telegram в n8n

В личном кабинете n8n создайте триггер для Telegram-бота:

  1. В правом верхнем углу личного кабинета нажмите Create Workflow.

  2. В центре рабочей области My workflow нажмите Add first step.

  3. На вкладке выбора триггеров в поле поиска введите telegram и выберите Telegram в результатах поиска.

    ../_images/n8n-trigger.png
  4. В появившемся списке выберите On message.

  5. В открывшемся диалоговом окне убедитесь, что в поле Credential to connect with выбрана учетная запись, созданная на шаге 5.

    ../_images/n8n-onmessage.png
  6. Чтобы закрыть диалоговое окно, в левом верхнем углу интерфейса нажмите Back to canvas.

    В центре рабочей области появится блок Telegram Trigger с новым триггером.

  7. Нажмите дважды на добавленный триггер.

  8. В открывшемся окне свойств триггера нажмите Execute step или Test step, в зависимости от версии n8n.

  9. Нажмите Execute step.

    Слева появится всплывающее уведомление о том, что n8n отслеживает сообщения, отправленные в Telegram-бота.

    ../_images/n8n-tg-notification.png
  10. Отправьте любое сообщение в Telegram-бота.

После этого на странице триггера в секции Output появятся данные отправленного сообщения.

../_images/n8n-message-data.png

7. Добавьте в чат статус «… печатает / … typing»

  1. Нажмите Back to canvas.

  2. Нажмите + справа от стартового триггера.

  3. На вкладке выбора триггеров введите в поле поиска telegram и выберите Telegram в результатах поиска.

  4. В появившемся списке выберите Send a chat action.

  5. В открывшемся диалоговом окне убедитесь, что:

    • в поле Credential to connect with выбрана учетная запись, которую вы создали на шаге 5;

    • в левой области окна отображены параметры, которые вы получили на шаге 6 для стартового триггера, после того как нажали Execute step.

    ../_images/n8n-check-trigger.png

    Если вы не видите этих данных, то нажмите Back to canvas, повторно откройте стартовый триггер и протестируйте шаг.

  6. Перетащите параметр message | chat | id в поле Chat ID.

    ../_images/n8n-dnd-id.png
  7. Нажмите Execute step.

    В правой части окна отобразится результат выполнения true.

8. Настройте ответ пользователю от бота

Настройте бота, чтобы он отправлял текст сообщения пользователя обратно:

  1. Нажмите Back to canvas.

  2. Нажмите + справа от созданного на предыдущем шаге действия Send a chat action.

  3. В открывшейся справа вкладке вновь найдите и выберите Telegram.

  4. В списке Actions выберите Send a text message.

  5. В открывшемся диалоговом окне введите параметры:

    • Chat ID — укажите {{ $node["Telegram Trigger"].json["message"]["chat"]["id"] }};

    • Text — укажите {{ $node["Telegram Trigger"].json["message"]["text"] }}.

    ../_images/n8n-parameters.png
  6. Чтобы вернуться к рабочей области, в левом верхнем углу нажмите Back to canvas.

  7. В верхней строке нажмите Save.

  8. В верхней строке активируйте бот.

    ../_images/n8n-active.png

Созданный вами Telegram-бот активирован.

9. Убедитесь, что бот работает

Отправьте в Telegram любое сообщение боту. Бот должен прислать обратно ваше сообщение.

../_images/check-bot.png

Результат

Вы развернули платформу для создания рабочих процессов без написания кода в сервисе Container Apps или Notebooks и создали с ее помощью Telegram-бота.

Дальше вы можете: