Найти в Дзене
python-book

Бот для телеграм на Python. Получаем карту города. Часть 1

Всем читающим доброго времени суток! Сегодня мы рассмотрим простой пример бота для telegram. Нам понадобятся библиотека telegram.ext и geopy, а также встроенный в Python модуль requests.

Команда для скачивания telegram.ext
pip install telegram.ext
или
py -m pip install -U telegram.ext

По аналогии скачивается и библиотека geopy.

По названию библиотеки telegram.ext думаю понятно зачем она нам нужна, а geopy позволит нам получать координаты места, которое мы хотим получить на карте, на примерах вы поймете о чём я.

Получаем карту города Екатеринбург, а также точный адрес
Получаем карту города Екатеринбург, а также точный адрес

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

Предоставляю ссылку на код бота

tbot1_yandex_static.py

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

Начало кода
Начало кода

Сначала переменной TOKEN мы даём вот такое значение, которое получаем у бота @BotFather, подробнее о том как получить этот токен вы можете прочитать в интернете, сейчас нет смысла занимать ваше время и описывать этот этап.

Далее мы создаём метод map(), который и будет получать название места и по нему определять координаты. Первым делом мы проверяем имеется ли вообще этот самый аргумент после команды /map, если нет, то мы выводим сообщение пользователю о том как нужно пользоваться этой командой.

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

Метод start и help
Метод start и help

Методы start и help обрабатывают команды /start и /help.

update.message.reply_text('Ответ') это ответ от бота на сообщение пользователя.

Пример команды /start
Пример команды /start

Вот так отработает команда /start

Конец кода
Конец кода

Метод echo обрабатывает иные сообщения боту, на любой текст кроме "Здравствуйте" он будет отвечать знаком вопроса.

В методе main() мы уже назначаем боту команды и методы для их обработки, то есть если мы захотим добавить команду /address и метод для её обработки, то добавим строку dp.add_handler(CommandHandler("address", address) ну и конечно добавим метод address(update, context).

Ну и наконец запускаем бота с помощью метода main().

Спасибо, что дочитали мою статью. Желаю вам крепкого здоровья! Во второй части мы модернизируем нашего бота. А также я могу рассказать про работу библиотек requests и geopy на примере этой программы.

#программирование #программированиедляначинающих #программированиенаpython