Где разместить бота Telegram

В статье расскажем, как создать телеграм-бота, а в качестве площадки для бота будем использовать облачный сервер от Timeweb Cloud.

Преимущества облачного сервера для Telegram-бота

  • Быстрая регистрация и начало работы;
  • Не нужно покупать домен, сервер имеет открытый IP-адрес;
  • Нет привязки к какому-то одному языку программирования, легко можно запустить любой скрипт;
  • Нет ограничения на ресурсы: бот не перестанет работать из-за превышения лимита трафика или процессорного времени контейнера;
  • Стабильность: время бесперебойной работы облачного сервера не ниже 99,99%.

Регистрация бота

Чтобы бот заработал, его необходимо зарегистрировать в Telegram. За регистрацию отвечает BotFather .

Шаг 2. Нам нужно зарегистрировать нового бота, поэтому выбираем команду:

/newbot

Шаг 3. Теперь необходимо придумать имя нашего бота. Указываем что угодно, для примера напишем:

MyBotTest

Шаг 4. Следующий шаг – необходимо придумать логин. Обратите внимание, чтобы логин заканчивался на «bot» в любом его виде, либо «*Bot», либо «_bot»:

Пишем бота для бесплатной рекламы в Telegram

Сложность этого шага заключается в том, чтобы найти свободный никнейм. Если такой логин занят, мы получим соответствующее извещение.

При успешной регистрации в ответ получим приветственное сообщение и ключ для HTTP-API. Сохраните ключ в надёжном месте.

Если потерялся сохранённый ключ, узнать его можно при помощи команды /token . Далее выберите бота, для которого нужен новый ключ. Заново создавать бота не потребуется.

Проверка и настройка бота

После завершения регистрации ищем бота в списке контактов. На текущий момент он ничего не умеет делать, просто прочитывает сообщения. С логикой работы разберёмся позже.

/mybots

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

По названиям кнопок будет понятно, что можно изменить имя, описание (приветствие при первом подключении), загрузить аватар. Из этого меню можно указать список доступных команд для бота с их описанием. Сами команды работать будут только с использованием дополнительной логики, реализованной сторонними программами-клиентами.

Подготовка рабочего пространства

Для запуска бота нам понадобится рабочее пространство. В нашем случае мы будем использовать облачный сервер . Подойдёт даже самая простая конфигурация, а из операционных систем порекомендуем Ubuntu или Debian. Но отметим, ввиду того, что обновления для Debian выходят с большим опозданием, скорее всего, версии нужных пакетов не будут соответствовать минимальным требованиям программ-клиентов и придётся собирать нужную версию Python из исходников.

Выбор языка программирования

Самые распространённые боты написаны на языке Python. Установить Python на облачный сервер можно командой:

sudo apt-get install python3 python3-pip

После установки проверить версию:

python3 -V

Одной из последних версий является 3.11, но для работы нашего примера подойдёт и 3.7.

КАК ЗАПУСТИТЬ TELEGRAM БОТА ИЛИ ПАРСЕР НА СЕРВЕРЕ

Установка python-telegram-bot

Для установки python-клиента достаточно написать в консоли:

pip3 install python-telegram-bot

По зависимостям будут установлены дополнительные пакеты, необходимые для работы python-telegram-bot . Чтобы не засорять систему, рекомендуется использовать виртуальное окружение. Эта возможность встроена в Python, быстро настраивается, не засоряет основную систему, а виртуальную среду со всем содержимым можно безболезненно удалить в будущем одной командой ( rm -rf ).

Еще по теме:  Как проверить читают ли личные сообщения в переписке с Телеграмм на Айфон

Создадим каталог для виртуального окружения, зайдём в него и установим копию Python:

mkdir bot_env cd bot_env
python3 -m venv venv

Активируем виртуальное окружение:

source venv/bin/activate

После успешной активации перед строкой для ввода команд появится venv . Теперь установим клиент:

pip install python-telegram-bot

Деактивировать виртуальное окружение можно, набрав:

deactivate

Предусмотрена возможность запускать скрипты без его явной активации, в таком случае необходимо набирать полный путь, вместо python3 .

При деактивированном окружении в нашем примере набираем:

/root/bot_env/venv/bin/python3

Примеры ботов

Примеры ботов можно найти на этой странице . Для демонстрации работы используем пример echobot.py , сохраните его в домашнюю папку (по умолчанию это /root ). Если используется виртуальное окружение, директория будет /root/bot_env . Необходимо в 67 строке заменить слово TOKEN на ключ, полученный при регистрации.

Загрузить пример можно сначала на свой компьютер, отредактировать файл и загрузить через файловый менеджер, например WinSCP.

Запустить пример можно, набрав в консоли:

python3 echobot.py

После успешного запуска в ответ получим:

telegram.ext._application — INFO — Application started

Тестирование бота

Если всё сделали верно, в ответ получим приветствие с вашим именем и ссылкой на профиль. При дальнейшем общении бот будет отправлять сообщения с полученным текстом.

echobot.py – самый простой демонстрационный бот. На странице примеров python-telegram-bot есть более сложные рабочие заготовки, которые можно сразу опробовать и применить для своих нужд с минимальными правками.

Запуск бота как службы

Чтобы бот автоматически запускался при загрузке системы, создадим свою службу в Systemd. Systemd доступен в новых версиях Ubuntu и в Debian версии 8.

Если не использовалось виртуальное окружение, нам потребуется полный путь к Python. Узнать, где он установлен, можно командой:

which python3

В ответ получим строку вида:

/usr/local/bin/python3

Перейдём в каталог Systemd:

  • в Debian: /usr/lib/systemd/system/
  • Ubuntu: /lib/systemd/system/

И создадим файл bot.service :

[Unit]
Description=My Python Bot
After=network.target network-online.target

[Service]
Type=simple
User=root
Group=root
Restart=on-failure
ExecStartPre=/bin/mkdir -p /var/run/bot
PIDFile=/var/run/bot/service.pid
ExecStart=

[Install]
WantedBy=multi-user.target

Возможные значения ExecStart :

  • без venv : ExecStart=/usr/local/bin/python3 /root/echobot.py
  • в venv : ExecStart=/root/bot_env/venv/bin/python3 /root/bot_env/echobot.py

Сохраняем файл, выставляем разрешения не ниже 644, перезагружаем Systemd:

systemctl daemon-reload

Добавляем службу бота в автозагрузку:

systemctl enable bot.service

Проверить состояние службы можно командой:

systemctl status bot

В ответ получим информацию о службе. Нас интересуют 2 пунка:

Loaded: loaded
Active: inactive

Служба добавлена ( loaded ), но не запущена ( inactive ), запустить её можно, перезагрузив облачный сервер или выполнив команду:

systemctl start bot

Ещё раз проверяем состояние службы, значение «Active» должно стать active (running) и быть зелёного цвета.

Другие скрипты-клиенты

Представленный пример на Python представлен как самый простой. Telegram – достаточно популярный, существуют клиентские программы, написанные на разных языках: Java, PHP, NodeJS и прочее. Все имеют готовые примеры для подключения и получения сообщений, нужную логику работы реализует сам пользователь.

В сети можно найти разные готовые скрипты викторин, опросников или прочих развлечений.

Зачем нужны боты для Telegram

Подобно голосовому меню мобильных операторов, боты могут решать большинство простых задач без привлечения человека: отвечать на заранее известные вопросы; отслеживать заказы; проводить опросы и даже бронировать места в различных заведениях.

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

Еще по теме:  Как перекинуть видео из Телеграмма в Ватсап на Андроид

Боты могут не только отвечать на заранее настроенные вопросы. Сложные клиентские программы могут использовать машинное обучение, которое анализирует введённый текст и совершает нужное действие.

Некоторые программы-клиенты поддерживают не только текстовый ввод, они принимают звонки или проигрывают музыку.

Надеемся, что информация была полезной. Попробуйте самостоятельно запустить бота, для этого потребуются только желание и 10 минут свободного времени.

Источник: timeweb.cloud

Где разместить свой телеграмм бот?

Я создал свой телеграмм бот и он работает когда я запущу программу (т.е свой бот) на локальном ПК. И хочу сделать так что с ним можно было работать с другими устройствами везде и всегда.

Отслеживать
задан 30 июл 2021 в 19:21
Suhayli Tuev Suhayli Tuev
15 1 1 серебряный знак 8 8 бронзовых знаков

Не выключайте свой ПК с ботом. Либо ищите хостинги на которых можно будет запускать бота, типа heroku

30 июл 2021 в 19:26

ru.stackoverflow.com/a/1146497/234134 туда же можно добавить Oracle Free вечная бесплатная ВМ с Ubuntu Server (естественно ограничение по ресурсам, но для бота хватит). либо raspberry pi

4 авг 2021 в 21:34

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Попробуйте Heroku. Можно залить на сервер бесплатно. Сам пользуюсь и вполне устраивает. Вот гайд по Heroku.

Какие есть альтернативы?

  • Railway App — Вам выделеятся каждый месяц 5$ и 500 часов работы. Деплоить проекты можно с гитхаба.
  • Render — На месяц вам дается уже 750 часов бесплатной работы, деплой через Github
  • PythonAnywhere — Прост в использовании, но нельзя подключаться к сторонним сервисам

Отслеживать
177 12 12 бронзовых знаков
ответ дан 31 июл 2021 в 8:19
808 2 2 серебряных знака 12 12 бронзовых знаков

Попробуй тут https://simplecloud.ru/start/34795 Сервер от 150 руб в месяц. Можно эксперементировать с ботами. Да и вообще для начала очень простой хостинг. Доступ к серверу будет по ssh.

Отслеживать
ответ дан 30 июл 2021 в 19:51
Sergei Malanin Sergei Malanin
546 2 2 серебряных знака 12 12 бронзовых знаков

В данный момент стало трудно искать сервера, тк все заблокировано. Насчет Heroku — работает только с vpn и возможно во время оплаты, может быть неполадки. Но есть https://www.pythonanywhere.com/, если тг бот не имеет выхода в сеть, то бесплатная версия будет оптимальной, а так цены там небольшие

Отслеживать
ответ дан 5 янв в 10:09
user513855 user513855

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
  • telebot
  • бот
    Важное на Мете

Связанные

Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник: ru.stackoverflow.com

Бесплатный хостинг Telegram-бота на Google Cloud Platform

При написание телеграмм ботов столкнулся с вопросом, как быстро и бесплатно сделать так, чтобы бот работал постоянно. Варианты с Heroku и Pythonanywhere имеют слишком маленькие лимиты, если у вас более одного бота. Поэтому я решил воспользоваться GCP. Платформа предоставляет бесплатно 300$ на год + огромные скидки при использование этих средств(до 94%).

Как захостить вашего бота?

Шаг 1. Регистрация на GCP

Переходим на сайт GCP и нажимаем Get started for free .

Еще по теме:  Как в канале Телеграмм посмотреть сколько пришло подписчиков от меня в другую группу

Вводим свои данные и карточку. Деньги с карточки не

будут списываться, если вы сами не активируете платную подписку.

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

После регистрации вы окажетесь на главной странице сервиса. Вам необходимо выбрать в разделе Ресурсов вкладку Compute Engine.

Необходимо создать новый экземпляр.

Если вы не будете развертывать БД на виртуальной машине, то можете взять g1-small, иначе советую n1-standart.

Необходимо будет выбрать также ОС. Я выбрал Debian GNU/Linux 9 (stretch).

Всё, ВМ создана. Обычные её развертывание занимает от 1 до 5 минут.

Шаг 3. Настройка виртуальной машины

Вы можете подключиться по SSH со своего ПК или же взаимодействовать через платформу.

Для этого нажмите на SSH.

У вас откроется терминал Linux в новом окне.

Теперь перейдем к настройке. Сначала вводим команду:

sudo apt-get update

для обновления информации об новейших версиях пакетов.

sudo apt-get install python3-setuptools

sudo apt-get install python3-pip

Сам Python устанавливать не нужно, он уже есть.

Теперь необходимо установить все необходимые библиотеки. Есть небольшой нюанс, все библиотеки необходимо устанавливать дважды:

pip3 install ‘name_of_package’

для использования через коману python3, и

sudo pip3 install ‘name_of_package’

для systemd. Данная утилита поможет вам запустить бота и перезапускать его, если он упадёт.

Самый простой способ запускать бота через python3, но он будет выключаться, если вы будете отключаться. Можно использовать screen, но бот не будет сам перезапускаться. Также можно использовать crontab с проверкой порта, но мне кажется этот вариант сложнее, чем systemd.

Шаг 4. Заливаем бота на сервер

Есть два способа залить вашего бота. Если вы не дружите с Git, вы можете просто заархивировать бота в .tar и залить его на сервер:

После этого разархивируем его командой:

tar -xvf yourfile.tar

Теперь ваш бот хранится в папке с названием архива.

Второй способ через Git. Я думаю, не стоит объяснять как это сделать людям, которые умеют его использовать.

После установки его командой:

sudo apt install git

Вы можете клонировать его себе на ВМ.

После этого переходим к настройке systemd. Для этого переходим в его директорию:

И создаём файл bot.service:

sudo nano bot.service

Вписываем в открывшиеся окно следующее:

WorkingDirectory=/home/название вашего юзера/название папки в которой лежит бот

ExecStart=/usr/bin/python3 /home/название вашего юзера/название папки в которой лежит бот/bot.py

Закройте и соханите файл. Закрывается с помощью команды Ctrl+X.

После этого введите команды по очереди:

sudo systemctl daemon-reload

sudo systemctl start bot

sudo systemctl status bot

Если всё будет хорошо, вы увидите примерно следующее:

Всё, теперь ваш бот работает самостоятельно. Надеюсь моя статья поможет вам захостить вашего бота.

P.S.

1.Проверьте вашего бота на ошибки

Запустите вашего бота и проверьте его работу прежде, чем запускать его через systemd. Для этого перейдите в папку с ботом и запустите через python.

2.Добавьте в файлы с py-скриптами кодировку

Вставить в начале файла.

3.Ошибки в systemd

Если вы проверяли бота на ошибки и он нормально работал, но он не хочет запускаться в systemd, то вы можете посмотреть логи и понять в чём ошибка просмотрев файл:

Вы можете скачать этот файл и просмотреть на своём компьютере через Notepad++.

4.Апдейт бота

Если вы хотите дописать или залить новую версию бота, то введите команду:

sudo systemctl stop bot

Провидите все необходимые манипуляции. А потом введите следующие команды, чтобы он опять заработал:

sudo systemctl daemon-reload

sudo systemctl start bot

sudo systemctl status bot

Источник: dzen.ru

Рейтинг
( Пока оценок нет )
Загрузка ...