{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Урок №2. Тело telegram бота

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

Создание проекта.

Я буду использовать программу PyCharm. В ней вам необходимо создать новый проект с любым названием(File -> New project -> Create). Я назову проект pythontelegram.Также внутри проекта необходимо создать новый файл для написания кода, название может быть любым(внутри проекта нажимаем правой кнопкой мыши -> New -> Python File)

Установка библиотек.

Для работы с API telegram бота нужно использовать специальную библиотеку. Таковых библиотек несколько и мы еще ознакомимся с дополнительными библиотеками, но для начала мы начнем работу с одной из более популярных и простых библиотек, а именно pyTelegramBotAPI. Она позволит нам получать сообщения и выполнять обработку всех наших действий.

Чтобы ее установить, откройте в PyCharm Terminal(Он находится в самом низу программы) и вставьте данную команду: pip install pyTelegramBotAPI.

Также когда мы будем выгружать наш проект на реальный сервер, то для того, чтобы никто не увидел ваш API токен. Так как если человек имеет ваш API токен, то человек имеет полный доступ к нашему боту, поэтому такие вещи как токены и пароли хранятся в отдельном файле, который не пушится на сервер, а храниться только в нашем компьютере. Для этого мы будем использовать такую библиотеку, как python-dotenv, которая позволит использовать нам env файлы, куда мы положим наш секретный токен и в коде просто его импортируем. Чтобы ее установить мы также открываем Terminal и вставляем команду: pip install python-dotenv.Если же у вас выдает ошибку, то открываем: File -> Settings -> Project: (ваш проект) -> Python Interpreter -> над словом package нажимаем на + -> в поиске вводим наши библиотеки(pyTelegramBotAPI, python-dotenv) -> Ilstall Package.

После установки будет видно какие библиотеки у нас установлены.

Импорт библиотек и создание .env файла.

Теперь давайте импортируем наши библиотеки.Для библиотеки python-dotenv, напишем функцию: from dotenv import load_dotenv. Она загрузит наш секретный токен из .env файла. Этот файл мы должны создать в нашем проекте(внутри проекта нажимаем правой кнопкой мыши -> New -> File). Пишем название файла, который будет оканчиваться на .env(Например: token.env). Теперь в этот файл мы просто кладем ключи и значения. Пусть наш ключ будет называться TG_BOT_TOKEN, и в него мы кладем тот токен, который вам выдал в telegram BotFather. Этот файл мы никуда пушить не будем, он будет у нас локально.

Теперь в нашем коде мы просто загрузим значение по ключу из этого файла. Для этого мы можем реализовать функцию get_from_env(). Здесь мы в качестве элемента принимаем ключ, и по этому ключу мы загружаем значения из этого bot.env файла. Сначала мы должны загрузить этот файл, чтобы python его увидел, поэтому мы должны импортировать еще несколько стандартных библиотек из python:

  • import os
  • from os.path import join, dirname

Это нужно, чтобы python увидел наш файл.

Потом мы возвращаемся в нашу функцию и прописываем: dotenv_path = join(dirname(__file__), 'token.env'). Это значит, что в той же папке, где находится наш python файл там есть файл с названием bot.env. Теперь его нужно загрузить с помощью функции load_dotenv(dotenv_path) мы передаем ему путь до этого файла(т.е. передаю dotenv_path). Потом мы просто возвращаем то, что у нас получается по этому ключу: return os.environ.get(key).

Перед тем как подключить библиотеку для telegram бота нам надо вызвать наш токен из функции. Создадим переменную, например, token и вызовем из функции наш токен(token = get_from_env('TG_BOT_TOKEN')). Теперь наш токен находится в переменной token.

Теперь мы можем начинать работать с нашим токеном.

Теперь давайте подключим библиотеку pyTelegramBotAPI, напишем: import telebot. Теперь создадим переменную которая будет называться bot. Далее в нее мы запишем обращение к нашей библиотеке и к такому классу, как Telebot. В этот же класс надо поместить наш токен бота, который мы поместили в переменную token, в двойных кавычках(bot = telebot.TeleBot("token")), тем самым мы подключаем нашего бота к python и теперь мы можем с ним работать.

Функция, позволяющая работать программе постоянно.

Также в конце программы напишем bot.polling(none_stop = True). Это нужно для того, чтобы наша программа постоянно выполнялась.

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

После каждого урока вы можете заходить на моего telegram бота, чтобы посмотреть результат работы, после каждого урока: http://t.me/pythonte1egram_bot.

Также вы можете подписаться на telegram канала, где будут выкладываться все коды на python с моих уроков: https://t.me/pythotelegram.

0
2 комментария
Глеб Богатов

Каналу дали блокировку на 3 дня. Все уроки есть в telegram канале!

Ответить
Развернуть ветку
Андриан А.

Какой тг

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда