Как сделать, чтобы телеграм бот работал постоянно
Для того чтобы ваш телеграм бот работал постоянно, необходимо уделить внимание нескольким ключевым аспектам. В этом тексте мы рассмотрим основные шаги и предоставим полезные советы, которые помогут вам в этом.
Обучение: что необходимо знать
Прежде всего, важно обладать базовыми знаниями в области программирования и понимании работы телеграм ботов. Вы можете найти множество ресурсов для обучения бесплатно в интернете, включая официальную документацию Telegram API, видеоуроки и статьи.
Список популярных площадок и конструкторов
Если вы не хотите заниматься программированием, вы можете использовать один из множества конструкторов для создания телеграм ботов. Вот список популярных платформ:
Каждая из этих платформ имеет свои плюсы-минусы, а также предлагает различные разновидности и шаблоны для создания ботов.
Пять идей для того чтобы бот в телеграм работал постоянно
- Использование облачных сервисов: Разместите вашего бота на платформе, такой как Heroku, AWS или Google Cloud, чтобы обеспечить его бесперебойную работу.
Пример: Heroku предлагает бесплатный план, который может подойти для небольших ботов.
Пример: setWebhook метод Telegram API позволяет установить вебхук.
Следуя этим рекомендациям, вы сможете обеспечить надежную и постоянную работу вашего телеграм бота. Не забывайте также регулярно обновлять его, чтобы соответствовать изменениям в API и потребностям пользователей.
Расчет цены и сроков разработки бота
Напишите нам в Telegram, ответим по вашему ТЗ за 1 день
Как сделать так, чтобы бот работал постоянно?
Что нужно сделать, чтобы бот работал на постоянке, даже если я выключал бы свой пк/посоветуйте какие нибудь сервисы,если такие знаете.
Отслеживать
задан 18 июл 2022 в 16:34
Marco Polo Marco Polo
17 1 1 золотой знак 2 2 серебряных знака 6 6 бронзовых знаков
Yandex.Cloud, Sbercloud?
18 июл 2022 в 16:45
Запускать на компьютере, который не выключается (например, на сервере)
18 июл 2022 в 16:46
а на каком сервере?(если знаете)
18 июл 2022 в 16:50
На любом какой вам понравится, хостингов слишком много, чтобы советовать какой-то конкретный
18 июл 2022 в 16:51
Бесплатный с ограничением по времени работы, (можно вписаться, если не сильно нагруженный) с хорошей документацией heroku
18 июл 2022 в 18:53
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Для этого нужно использовать любой из существующих хостингов. Например google cloud, если ваш бот не большой. В противном случае придется пользоваться платными хостингами.
Отслеживать
5,318 2 2 золотых знака 10 10 серебряных знаков 25 25 бронзовых знаков
ответ дан 18 июл 2022 в 16:59
root_of_the_live root_of_the_live
67 11 11 бронзовых знаков
Я воспользовался сервисом https://www.pythonanywhere.com там все бесплатно и понятно. Регистрируешься, затем добавляешь файлы с ботом в раздел Files и после запускаешь.
Отслеживать
47.8k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
ответ дан 17 авг 2022 в 5:05
1 1 1 бронзовый знак
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
- python
- telegram-bot
- telegram
- telebot
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как заставить телеграмм бота работать постоянно?
Я написал телеграмм бота и мне надо, чтобы он постоянно ожидал запрос. Сейчас он работает благодаря Console.ReadLine (она не дает ему схопнуть).
Я уверен, что «ридлайн» плохая практика. Что лучше использовать вместо Readline? Может BackgroundService?
- Вопрос задан более года назад
- 106 просмотров
1 комментарий
Средний 1 комментарий
Василий Банников @vabka Куратор тега C#
А как ты бота запускаешь?
Решения вопроса 0
Ответы на вопрос 2

Василий Банников @vabka Куратор тега C#
Токсичный шарпист
Используй Console.Cancelkeypress и TaskCompletionSource, чтобы можно было закрыть нажатием ^C
var cts = new TaskCompletionSource(); Console.CancelKeyPress += () => cts.SetResult(); await cts.Task;
Либо ты можешь использовать generic host (загугли) с IHostedService
Либо ты можешь перейти на asp net core и начать использовать вебхуки, вместо поллинга
Заворачивать ли это в виндовые сервис, чтобы он автоматом перезапускал при падении и запускал при включении — это на твоё усмотрение.
Как сделать чтобы телеграм бот работал постоянно
Телеграм-бот на сервере: загрузка, настройка и запуск
Автор статьи — Денис, специалист службы технической поддержки хостинга в ООО «REG.RU».
В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.
Шаг 1. Выбрать хостинг
Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):
- Google Cloud
- Oracle Cloud
- Amazon Web Services
Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.
Для примера мы закажем облачный VPS в REG.RU, вы можете воспользоваться любым VPS-хостингом. Он удобен для тестового проекта тем, что оплата почасовая. При выборе тарифа мы рекомендуем ориентироваться на несколько параметров:
- Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
- Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.
Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.
Шаг 2. Заказать хостинг
Переходим по ссылке: https://www.reg.ru/vps/cloud/, выбираем тариф, операционную систему и шаблон «Чистая ОС». Если у вас нет особых предпочтений, рекомендуем выбрать Ubuntu 18.04. Хотя у REG.RU есть шаблон c Node.js, для чистоты эксперимента всё необходимое ПО мы установим сами. Нажимаем кнопку «Заказать»:

После заказа и оплаты дождёмся настройки сервера:

В течение минуты статус сервера сменится с «В процессе» на «Активен». После этого отобразятся реквизиты доступа к серверу, они также будут отправлены на почту:

Шаг 3. Загрузить бота
Приступим к загрузке бота на сервер. Это можно сделать разными способами — с помощью FTP, SFTP, панели управления или, к примеру, rsync. Мы выберем самый быстрый вариант — SFTP, так как для него нужна только возможность подключения к серверу по SSH, которая обычно присутствует на всех VPS сразу после заказа.
Мы подключимся к серверу с помощью FileZilla. Укажем IP-адрес сервера, а также логин root и пароль в настройках клиента:

При первом подключении появится окно с предупреждением:

Ставим галочку «Всегда доверять этому хосту» и нажимаем «Ок».
Переходим на директорию выше ( . ), затем в каталог /opt и создаём папку с произвольным названием (мы выбрали keksbot ):

Переходим в созданную папку и загружаем файлы index.js и package.json :

Шаг 4. Зайти на сервер по SSH
Теперь нужно подключиться к серверу по SSH, чтобы установить Node.js и запустить бота. Для этого необходим SSH-клиент, например Putty, XShell, Bitvise SSH или любой другой. Функциональность программ может немного отличаться, но большой разницы в использовании между ними нет. Мы выбрали PuTTY как самый популярный и бесплатный SSH-клиент для Windows.
Открываем PuTTY, указываем IP-адрес сервера, порт 22 уже указан по умолчанию:

Нажимаем «Соединиться». Откроется окно с запросом логина:

Вводим root , после чего появится запрос пароля, при вводе которого символы не отображаются. Не стоит переживать, это особенность работы Linux — пароль нужно вводить вслепую. Чтобы не делать этого вручную, можно скопировать пароль и нажать правой кнопкой мыши в окне PuTTY. Убедитесь, что вы скопировали пароль без пробелов!
Шаг 5. Установить Node.js
Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.
Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:
Вывод будет примерно таким:
Нас интересует поле NAME , в котором указано название дистрибутива.
Помимо Node.js нам понадобится утилита Screen, чтобы бот продолжал работать, когда мы отключимся от сервера. Также нужен менеджер пакетов npm для установки зависимостей.
для Ubuntu/Debian
Подождём завершения установки и проверим, что Node.js работает:
Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.
Теперь перейдём в папку с файлом бота и установим зависимости:
Возможные ошибки при установке, и как их решить
При установке могут появиться ошибки вида:
Обычно это связано с тем, что у пользователя недостаточно прав для установки пакетов на сервере, либо предыдущий процесс установки завершён некорректно.
В первом случае необходимо убедиться, что вы подключились к серверу под именем суперпользователя root — при необходимости зайдите на сервер заново.
Во втором случае для решения проблемы нужно завершить процесс менеджера пакетов и удалить lock -файлы. Чтобы это сделать, запустите команды:
для Ubuntu/Debian
После этого попробуйте заново запустить установку.
Шаг 6. Запустить и проверить бота
Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:
Перейдём в каталог с файлом бота:
После этого можем запустить бота:
Заходим в Telegram, проверяем бота:

Отлично! Всё работает.
Теперь можно отключиться от сервера и закрыть окно PuTTY, бот продолжит работу.
Шаг 7. Обеспечить автоматический перезапуск бота
Из-за ошибок в коде бот может «упасть» в самый неожиданный момент. Чтобы этого не случилось, настроим автозапуск бота при старте сервера и его автоматический перезапуск при ошибках.
Это позволит боту стабильно работать даже в случае обнаружения багов. Вы сможете оперативно их исправить, а бот в это время продолжит отвечать на запросы.
Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.
Для начала отключим бота командой:
Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:
В нашем случае это будет файл /lib/systemd/system/keksbot.service . В файл поместим следующий код:
Текст в некоторых строках необходимо отредактировать относительно вашего проекта. Разберём строки, на которые нужно обратить внимание.
В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.
Команда для запуска бота.
Её следует поменять, если имя скрипта вашего бота отличается от index.js . В таком случае нужно будет указать следующие значения:
Папка со скриптом, который мы запускаем. В нашем случае это /opt/keksbot/ .
Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:
Теперь запустим бота командой:
Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:
Бесплатный хостинг Telegram-бота на Google Cloud Platform
При написание телеграмм ботов столкнулся с вопросом, как быстро и бесплатно сделать так, чтобы бот работал постоянно. Варианты с Heroku и Pythonanywhere имеют слишком маленькие лимиты, если у вас более одного бота. Поэтому я решил воспользоваться GCP. Платформа предоставляет бесплатно 300$ на год + огромные скидки при использование этих средств(до 94%).

Как захостить вашего бота?
Шаг 1. Регистрация на GCP


Шаг 2. Создаём виртуальную машину




Всё, ВМ создана. Обычные её развертывание занимает от 1 до 5 минут.
Шаг 3. Настройка виртуальной машины


Теперь перейдем к настройке. Сначала вводим команду:
для обновления информации об новейших версиях пакетов.
После вводим:
Сам Python устанавливать не нужно, он уже есть.
Теперь необходимо установить все необходимые билиотеки. Есть небольшой нюанс, все библиотеки необходимо устанавливать дважды:
для использования через коману python3, и
для systemd. Данная утилита поможет вам запустить бота и перезапускать его, если он упадёт.
Самый простой способ запускать бота через python3, но он будет выключаться, если вы будете отключаться. Можно использовать screen, но бот не будет сам перезапускаться. Также можно использовать crontab с проверкой порта, но мне кажется этот вариант сложнее, чем systemd.
Шаг 4. Заливаем бота на сервер

После этого разархивируем его командой:
Теперь ваш бот хранится в папке с названием архива.
Второй способ через Git. Я думаю, не стоит обьяснять как это сделать людям, которые умеют его использовать.
После установки его командой:
Вы можете клонировать его себе на ВМ.
После этого переходим к настройке systemd. Для этого переходим в его директорию:
И создаём файл bot.service:
Вписываем в открывщиеся окно следующее:
Закройте и соханите файл. Закрывается с помощью команды Ctrl+X.
После этого введите команды по очереди:
Если всё будет хорошо, вы увидите примерно следующее:

Всё, теперь ваш бот работает самостоятельно. Надеюсь моя статья поможет вам захостить вашего бота.
1.Проверьте вашего бота на ошибки
Запустите вашего бота и проверьте его работу прежде, чем запускать его через systemd. Для этого перейдите в папку с ботом и запустите через python.
2.Добавьте в файлы с py-скриптами кодировку
Вставить в начале файла.
3.Ошибки в systemd
Если вы проверяли бота на ошибки и он нормально работал, но он не хочет запускаться в systemd, то вы можете посмотреть логи и понять в чём ошибка просмотрев файл:
Вы можете скачать этот файл и просмотреть на своём компьютере через Notepad++.
4.Апдейт бота
Если вы хотите дописать или залить новую версию бота, то введите команду:
Провидите все необходимые манипуляции. А потом введите следующие команды, чтобы он опять заработал:
Как сделать, чтобы на VDS Телеграм бот работал постоянно?
Приветствую! Впервые заливаю бота на сервер, в связи с чем столкнулся с некоторыми проблемами. Для тех кто уже это делал вопросы могут показаться лёгкими, но для меня, увы, пока непонятно! Прошу помочь, а вопросы следующие:
1) Как сделать чтобы бот работал постоянно/круглосуточно + автоматически запускался после краша?
(Сейчас использую PuTTY, как я понял после запуска бота из консоли, в случае закрытия этой самой консоли бот тоже остановится?)
2)Как запускать одновременно на одном серваке несколько ботов, чтобы не было конфликтов между ними.
(Слышал про cmd-команду «screen» для создания виртуальной сессии, а также про systemd, это оно, копать в эту сторону?
3)Webhook предпочтительнее longpolling при одновременной работе нескольких ботов или не суть?
З.Ы. Хост — Fornex; Админка — Vesta; ОС — Debian 9; Терминал клиент — PuTTY; FTP клиент — WinSCP
Похожие публикации:
- Как подключить hp laserjet 1018 к windows 10
- Как поднять рейтинг на яндекс картах
- Как понять что айфон взлomали
- Как поставить гифку на аватарку
