tgoop.com/prog_way_blog/48
Last Update:
Запускаем своего первого телеграм бота на Python.
Я уже как-то затрагивал ботов обзорно вот в этом посте, сегодня хочу продолжить немного более конкретно. Итак, телеграм сейчас является самой лучшей площадкой для создания ботов. Ни один другой мессенджер или соцсеть не может похвастаться таким же успехом в этом деле. Объяснить это просто:
1. У телеграма прекрасный, удобный, хорошо задокументированный API.
2. Для него уже сейчас существует огромная кодовая база, десятки библиотек на самых разных языках программирования.
Для примера я взял Python, так как этот язык наиболее распространен среди аудитории моего канала, как мне кажется. Для Python есть две неплохие библиотеки - это pyTelegramBotApi и aiogram. Я написал уже где-то ботов 15 за всё время программирования и с уверенностью могу сказать, что на моей практике это лучшие библиотеки.
Aiogram прекрасен своей асинхронностью, а следовательно эффективностью в высоконагруженным проекте, а pyTelegramBotApi - это синхронный младший брат, который, конечно, менее эффективен, но которого более чем достаточно в большинстве задач. pyTelegramBotApi максимально прост, так что в этой библиотеке разберётся любой.
Для начала зарегистрируем нового бота у @botfather. Это не сложно, не будем на этом останавливаться.
Потом установим библиотеку:pip install pyTelegramBotApi
Далее создадим файл bot.py
и напишем вот такой код:
import telebotДалее разберем основы:
bot = telebot.TeleBot(токен от @BotFather)
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.send_message(message.chat.id, "привет")
bot.polling(none_stop=True)
Первое, что нужно обсудить - это объект message, который в себя принимает функция
send_message
. Message - обычный питоновский словарь, к которому мы можем обращаться по ключам. Принт этого объекта можно посмотреть тут.Второе, конечно же, декоратор
bot.message_handler(commands=['start'])
. Весь его функционал заключается в том, что функция, обёрнутая декоратором, будет выполнятся на определенную команду, например. То есть мы можем оформить декоратор bot.message_handler(commands=['help', 'помощь'])
и описанная ниже функция сработает при командах /help
и /помощь
.Это, конечно же, не единственный декоратор, который есть в библиотеке, но его одного достаточно для простейшего бота.
Насчёт
bot.send_message
. Это метод, который, как очевидно, отправляет сообщение пользователю. В приведенном выше примере мы отправляем сообщение по идентификатору
message.chat.id
, то есть в ответ пользователю. У этого класса есть еще много методов, например для отправки фотографии, аудио, игр или других действий.Теперь я напишу маленького бота, на примере которого, я надеюсь, вы поймёте тему лучше.
Посмотреть код можно тут.
Взаимодействовать с ботом: @progway_test_bot
И, как всегда, спасибо за прочтение ❤️
#python #chatbot
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/48