Demo Telegram Bot
Telegram-бот на serverless-стеке Yandex Cloud, который возвращает пользователю отправленное сообщение. Реализован с помощью библиотеки Telegraf.js
Навыки Telegram-бота можно менять по своему усмотрению.
Необходимые платные ресурсы
В стоимость ресурсов для приложения входят:
- Плата за количество вызовов функции, вычислительные ресурсы, выделенные для выполнения функции, и исходящий трафик (см. тарифы Yandex Cloud Functions).
- Плата за количество запросов к API-шлюзу и исходящий трафик (см. тарифы Yandex API Gateway).
- Плата за количество запросов к стандартной очереди (см. тарифы Yandex Message Queue).
- Плата за хранение и запрос секретов (см. тарифы Yandex Lockbox).
Перед началом работы
Зарегистрируйте вашего бота в Telegram и получите токен:
- Запустите бота
BotFather
и отправьте ему команду/newbot
. - Укажите имя вашего бота, например
Serverless Echo Telegram Bot
. Это имя будут видеть пользователи при общении с ботом. - Укажите имя пользователя вашего бота, например
ServerlessHelloTelegramBot
. По имени пользователя можно будет найти бота в Telegram. Имя пользователя должно оканчиваться на...Bot
или..._bot
.
На экране появится токен Telegram-бота.
Создайте секрет Yandex Lockbox. В поле Ключ укажите TG_TOKEN
, в поле Значение — полученный токен Telegram-бота.
Разверните приложение
-
В консоли управления
выберите каталог, в котором хотите развернуть приложение. -
Выберите сервис Cloud Apps.
-
На панели слева выберите Магазин приложений.
-
Выберите Demo Telegram Bot и нажмите кнопку Использовать.
-
Укажите:
- Имя приложения.
- (Опционально) Описание приложения.
- Сервисный аккаунт с ролью
admin
на каталог или выберите Автоматически, чтобы нужный сервисный аккаунт создался при установке приложения. От имени этого сервисного аккаунта будут создаваться ресурсы приложения. - Идентификатор секрета Yandex Lockbox, который создали ранее.
-
Нажмите кнопку Установить и дождитесь, пока приложение установится.
-
На странице Обзор, в разделе Ресурсы приложения, найдите API-шлюз, перейдите на его страницу и скопируйте ссылку на служебный домен.
-
Чтобы настроить связь между функцией и Telegram-ботом, выполните запрос. Вместо
<токен_бота>
укажите токен Telegram-бота, вместо<домен_API-шлюза>
— ссылку на служебный домен API-шлюза.Linux/macOSWindows (cmd)Windows (PowerShell)curl \ --request POST \ --url https://api.telegram.org/bot<токен_бота>/setWebhook?url=<домен_API-шлюза>/echo
curl ^ --request POST ^ --url https://api.telegram.org/bot<токен_бота>/setWebhook?url=<домен_API-шлюза>/echo
curl.exe ` --request POST ` --url https://api.telegram.org/bot<токен_бота>/setWebhook?url=<домен_API-шлюза>/echo
Результат:
{"ok":true,"result":true,"description":"Webhook was set"}
Проверьте работу
Напишите боту в Telegram.