Demo Telegram Bot
Telegram-бот на serverless-стеке Yandex Cloud, который возвращает пользователю отправленное сообщение. Реализован с помощью библиотеки Telegraf.js на Node.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-шлюза>/echocurl ^ --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.
Служба технической поддержки Yandex Cloud отвечает на запросы 24 часа в сутки, 7 дней в неделю. Доступные виды запросов и срок их обработки зависят от тарифного плана. Подключить платную поддержку можно в консоли управления. Подробнее о порядке оказания технической поддержки.
| Тип ресурса | Количество |
|---|---|
| Сервисные аккаунты | 4 |
| Статический ключ доступа | 1 |
| Пользователи каталога | 7 |
| Message Queue | 1 |
| Бессерверная функция | 1 |
| Триггер | 1 |
| API-шлюз | 1 |