Создаем Telegram-бота на Python. Часть два - Блог ITVDN
ITVDN: курсы программирования
Видеокурсы по
программированию

Заказать звонок

Выбери свою IT специальность

Подписка

Заказать звонок

+38 099 757 27 82

Создаем Telegram-бота на Python. Часть 2

advertisement advertisement

Чат боты — это новый инструмент взаимодействия разработчика с пользователем. Их все чаще внедряют для совершенно различных целей. Новостные ленты, обработка налоговых деклараций, сохранение файлов – боты становятся удобным интерфейсом взаимодействия c различными сервисами.

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

В качестве места размещения мы будем использовать бесплатный сервис Heroku.

 

Установка и настройка Git

Для дальнейшей работы нам понадобится установить Git, зарегистрироваться на GitHub и создать репозиторий с именем нашего приложения. В нашем случае это MyFirstTestBot.

Скачать версии Git, соответствующие вашей операционной системе, можно по следующим ссылкам для macOS и для Windows. На Linux Git можно установить, выполнив такую команду:

sudo apt-get install git-all

 

Далее, желательно использовать виртуальную среду. Если она не установлена, при установке Python вы можете ее установить, выполнив команду:

pip install virtualenv

Создадим новую папку для нашего приложения и связи его с GitHub. В нашем случае это папка PythonApplication1 в корне диска C.

Выполним клонирование репозитория. Для этого находясь в нашей папке в консоли выполним команду, введя ссылку на ваш репозиторий:

git clone https://github.com/your_github_account/your_repository_name

 

После выполнения этой команды в нашей папке с именем PythonApplication1 мы получили еще одну папку – MyFirstTestBot.

В консоли перейдем в корень диска C и выполним команду:

virtualenv PythonApplication1

Если команда не выполняется, и вы на экране консоли видите «"virtualenv" не является внутренней или внешней командой…» - вам следует настроить системную переменную PATH и добавить в нее адреса расположения вашей папки с Python и подпапки со скриптами (в моем случае C:\Users\B\AppData\Local\Programs\Python\Python37-32\Scripts).

Будем в дальнейшем пользоваться консолью Git, которую мы установили ранее:

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

Поместим скрипт в папку, полученную в результате выполнения команды git clone (папка MyFirstTestBot). Имя файла с нашим скриптом - mftb.py

Теперь запустим наше виртуальное окружение. Перейдем в консоли в папку C:\PythonApplication1 и выполним команду:

source C:\PythonApplication1\Scripts\activate

Если все сработало нормально – в консоли приглашение командной строки будет начинаться с имени нашей папки (PythonApplication1):

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

pip install requests

Создадим список зависимостей для Heroku, введя команду:

pip freeze > requirements.txt

Обратите внимание – в файле requirements.txt указываются требования к серверу Huroku. Там должно быть приблизительно такое содержимое:

Если вы не продолжаете проект из предыдущей статьи, а создали новый – не забудьте указать все зависимости.

В папке MyFirstTestBot создадим файл с именем Procfile без расширения. В теле этого файла пропишем:

web: python mftb.py

В папке MyFirstTestBot создадим также файл с именем __init__.py без содержимого.

Содержимое нашей папки MyFirstTestBot теперь такое:

Отправим в GitHub репозиторий наш набор изменений. Для этого выполним следующую серию команд, с указанием ссылки на ваш репозиторий:

git init
git add .
git commit -m “first commit – ваше сообщение комментарий к коммиту”
git push -u https://github.com/your_github_account/your_repository_name

 

Код нашего бота теперь загружен на GitHub и нам остается загрузить его на Heroku, где будет хоститься наш бот.

Рекомендуется ознакомиться с основами работы с Heroku по ссылке. По той же ссылке следует скачать установщик интерфейса командной строки (CLI) от Heroku и запустить его.

После установки CLI зарегистрируемся на Heroku через веб браузер.

Далее подключимся к Heroku через консоль используя команду:

heroku login

 

Нас попросят подключиться через браузер к сайту Heroku и залогиниться там. Нужно будет ввести ваши данные.

Выполним команду для создания приложения в Heroku:

heroku create

Дальнейшие наши команды отправят наш проект на сервер Heroku и укажут необходимую настройку:

git push heroku master
heroku ps:scale web=1

Последняя команда запустит наше приложение на сервере:

heroku open

Теперь наше предложение установлено и запущено на сервере. Мы можем проверить это, пообщавшись с нашим ботом в Telegram:

Как мы видим – все работает. Если по каким-то причинам бот не запустился, нужно ввести в консоли команду:

heroku logs –tail

И смотреть на коды ошибок на сайте.

 

Резюме.

 

В прошлой статье мы с вами посмотрели, как можно создать простого Telegram бота. Теперь мы опубликовали его на удаленном сервере. Наш чатбот работает, и мы можем к нему обращаться, используя привычный мессенджер.  Конечно, этот вариант бота далек от идеала, но для учебных целей, как первый проект бота, он подойдет.

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

Чаще всего востребованные библиотеки для работы ботов сейчас пишут на Python. Именно поэтому мы рассмотрели этот простой пример.  Для дальнейшего развития вас как квалифицированного Python разработчика мы рекомендуем ознакомиться с курсом подготовки Python-разработчика на портале  ITVDN.

КОММЕНТАРИИ И ОБСУЖДЕНИЯ
advertisement advertisement

Покупай подпискус доступом ко всем курсам и сервисам

Библиотека современных IT знаний в удобном формате

Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

Стартовый
  • Все видеокурсы на 3 месяца
  • Тестирование по 10 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин
59.99 $
Оформить подписку
Базовый
  • Все видеокурсы на 6 месяцев
  • Тестирование по 16 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин
89.99 $
Оформить подписку
Премиум
  • Все видеокурсы на 1 год
  • Тестирование по 24 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
169.99 $
Оформить подписку
Notification success