Выбирая хостинг для телеграм бота важно обращать внимание на надежность и стабильность работы серверов. Немаловажным нюансом является и отзывчивость службы поддержки, которая при возникших вопросах сможет оперативно помочь вам с решением проблем.
Практически все хостинги сейчас предлагают одинаковые условия, поддерживают имеющиеся SSL-сертификаты, и отличаются лишь количеством свободного места на жестком диске и максимально допустимым количеством сайтов, которые можно размещать на хостинг. Выбирайте тарифы на хостинг для телеграм бота в зависимости от задач, которые этот бот будет выполнять.
Во многих странах мессенджер Телеграм заблокирован или крайне нестабилен в работе, при выборе хостинга обратите внимание на физическое размещение сервера, то в какой стране он находится и по возможности старайтесь не выбирать хостинг в стране, где могут быть трудности с доступом к мессенджеру.
1. Cloud4box | от 335 руб. до 6995 руб. | — | cloud4box.com |
2. Beget | from 190 rub. to 72000 rub. | — | beget.com |
3. Schneider Host | от 176 руб. до 8550 руб. | — | shneider-host.ru |
4. Sprinthost | от 100 руб. до 16600 руб. | UTP12-1TY9Y-B60AJ | sprinthost.ru |
5. Fozzy | от 3 USD до 180 USD | extra_10 | fozzy.com |
6. Webhost1 | от 50 руб. до 80000 руб. | f4e9a0-10 | webhost1.ru |
7. Mchost | от 156 руб. to 13000 руб. | 1313751747 | mchost.ru |
8. FirstVDS | от 239 руб. до 3309 руб. | 648673444 | firstvds.ru |
9. Timeweb | от 189 руб. до 37600 руб. | — | timeweb.com |
10. Simplecloud | от 150 руб. до 22400 руб. | — | simplecloud.ru |
Установка Telegram бота на ХОСТИНГ (СЕРВЕР) | Настройка сервера
1. Cloud4box
Cloud4box — российская компания, которая предлагает свои услуги по размещению сайтов на собственных серверах. Высококачественные услуги сервиса помогут вашему проекту стать успешным. Вы можете арендовать выделенный сервер, VPS/VDS сервер, организовать хранилище данных в облаке или заказать услуги по администрированию и комплексному обслуживанию серверов.
Источник: thename.website
Запускаем телеграм-бота на сервере
Тогда он будет работать круглые сутки, а вы — отдыхать.
Не так давно мы создали телеграм-бота на Python: можно было написать ему свой знак зодиака, а он в ответ давал предсказание о долгой счастливой жизни. Но у бота есть недостаток: он работает, пока запущена программа на нашем компьютере. Если мы её остановим или выключим компьютер, бот тоже перестанет отвечать на сообщения.
Вот что мы сделаем, чтобы бот работал независимо от всего:
- Выберем сервер.
- Подготовим программу для работы на нём.
- Зальём программу на сервер.
- Настроим сервер, чтобы он исполнял программу.
Выбираем сервер
Нам нужен сервер, который умеет работать с Python и запускать файлы программы автоматически. На самом деле он у нас уже есть — на нём крутится сайт mihailmaximov.ru. Если вы всё пропустили — держите подборку:
- что такое домен и как его получить;
- делаем страницу «О себе»;
- как опубликовать свой сайт в интернете.
Тот хостинг, который мы выбрали для проектов, уже умеет запускать Python-файлы. Если вы пользуетесь другим сервисом, то проверьте, умеет ли он то же самое.
Готовим программу и отправляем её на сервер
Единственное, что нужно добавить в наш код телеграм-бота, — специальную команду интерпретатору, чтобы он знал, как работать с нашим файлом. Но перед этим нужно проверить, какая версия Python на нём установлена.
Чтобы это узнать, соединимся с сервером по протоколу SSH и спросим у него напрямую. Для этого используем программу Putty, а настройки подключения возьмём в личном кабинете хостинга:
Вставляем их в Putty и подключаемся. Помните, что для безопасности во время ввода пароля курсор стоит на месте, чтобы никто не смог выяснить, сколько символов вы набираете. Когда подключились, вводим команду python3.3 -V — она покажет, есть ли на сервере поддержка этой версии Python:
Теперь добавляем в самое начало нашего файла с программой такую строчку:
В статье о том, как опубликовать сайт в интернете, мы рассказывали, как залить файлы на сервер. Это умение нам сейчас пригодится: сохраняем нашу программу с гороскопом как файл с расширением .py и отправляем его на сервер в папку cgi-bin (то, что лежит в этой папке, никто не увидит):
Настраиваем сервер
Теперь научим сервер понимать, как работать с нашей программой. Для этого в корне сайта находим файл .htaccess и добавляем в него такую строчку:
AddHandler cgi-script .py
Если у вас такого файла нет — создайте его и не забудьте про точку в самом начале названия.
Последнее, что осталось сделать, — настроить права доступа у файла с программой. Находим её среди файлов хостинга и выставляем права 755 или rwxrwxr-x:
Теперь с помощью Putty снова подключаемся к серверу и настраиваем рабочее окружение. Это как будто виртуальная песочница, где мы сможем ставить нужные модули для Python, чтобы не мешать остальным пользователям сервера.
Всё, что мы будем делать дальше, относится к хостингу SpaceWeb. Если у вас другой хостинг, то, возможно, часть команд вам не пригодится и Python будет работать напрямую. У нас так не работает, поэтому делаем виртуальное окружение.
В SSH-терминале пишем по очереди такие команды (вместо .thecode можно написать название каталога, которое вам по душе):
virtualenv .thecode source .thecode/bin/activate
Эти две команды создадут виртуальное пространство для запуска Python-файлов.
Теперь установим Python-модуль для работы с Телеграмом:
pip install pytelegrambotapi
Когда установка закончится, пишем такую команду:
nohup python3 /home/t/thecode/osebe/public_html/cgi-bin/telegoroskop.py
/home/t/thecode/osebe/ — это наш путь к папке cgi-bin, а у вас он будет другим. Поменяйте путь на свой и запускайте.
Чтобы программа продолжала работать после того, как мы закроем SSH-клиент, в самом начале пишем команду nohup .
Что дальше
Telegram bot — напоминалка через webHook на Java или скажи нет Google-календарю! Часть 1
4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.0 ru.popov telegrambot 0.0.1-SNAPSHOT telegrambot Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-test test org.telegram telegrambots-spring-boot-starter 5.2.0 org.projectlombok lombok 1.18.16 org.postgresql postgresql runtime org.springframework.boot spring-boot-maven-plugin
Все готово для написания нашего бота. Создадим класс TelegramBot. Название папок я писать не буду, можете посмотреть в структуре проекта выше.
Данная конфигурация настроена для работы с локальной базой данных, в последствии мы сделаем необходимые изменения. Замените botToken и username на свои. Не годится использовать данные из application.properties напрямую в приложении. Создадим из этих данных bean или класс обертку.
Никакой магии тут нет, при старте Spring создает нам объекты SetWebhook и TelegramBot. Создадим теперь точки входа наших сообщений:
Telegram сервер отправляет на зарегистрированный адрес webhook сообщения в формате JSON методом POST, наш контроллер их принимает и передает библиотеке telegram в виде объекта Update. Метод get я сделал просто так ) Теперь нам осталось реализовать какую-то логику обработки сообщений и ответа в классе TelegramFacade, я приведу его краткий код, чтобы уже можно было запускать приложение и дальше идти своим путем или перейти уже у deploy на Heroku, потом будет полная версия: