Шрифт:
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="Hello, I'm a bot!")
Эта функция будет отправлять сообщение "Hello, I'm a bot!" в ответ на команду "/start".
Теперь мы можем добавить этот обработчик к Updater, чтобы он обрабатывал эту команду:
updater.dispatcher.add_handler(CommandHandler('start', start))
Эта строка добавляет обработчик команды "/start" к Updater.
updater.start_polling
Эта строка начинает получение обновлений от Telegram и обработку их нашим ботом.
Теперь, когда наш бот запущен, мы можем отправить ему команду "/start" и увидеть, как он отвечает на нее.
В этой главе мы рассмотрели создание бота на языке Python с помощью библиотеки python-telegram-bot. Мы установили библиотеку, создали экземпляр Updater, добавили обработчик команды "/start" и запустили нашего бота. Теперь наш бот готов к работе и может обрабатывать другие команды и типы сообщений.
Но мы можем улучшить нашего бота, добавив ему дополнительный функционал. Например, мы можем создать обработчик для команды "/help", который будет выводить список доступных команд:
def help(update, context):
text = "Available commands:\n/start – start the bot\n/help – show available commands"
context.bot.send_message(chat_id=update.effective_chat.id, text=text)
updater.dispatcher.add_handler(CommandHandler('help', help))
Теперь мы можем отправить команду "/help" нашему боту и увидеть список доступных команд.
Мы также можем добавить обработчик для сообщений от пользователя. Например, мы можем создать обработчик для сообщения "Hi", который будет отправлять в ответ сообщение "Hello!":
def message_handler(update, context):
text = update.message.text.lower
if text == 'hi':
context.bot.send_message(chat_id=update.effective_chat.id, text="Hello!")
updater.dispatcher.add_handler(MessageHandler(Filters.text, message_handler))
Эта функция будет вызываться каждый раз, когда пользователь отправляет сообщение. Если текст сообщения равен "hi", то бот отправляет сообщение "Hello!".
Мы можем добавить и другие обработчики для различных типов сообщений и команд, чтобы расширить функционал нашего бота.
В этой главе мы создали базовый бот на языке Python с помощью библиотеки python-telegram-bot. Мы добавили обработчики для команд "/start" и "/help", а также для сообщений от пользователя. Наш бот может отправлять сообщения в ответ на команды и сообщения, и мы можем добавить ему дополнительный функционал для обработки других типов сообщений.
Глава 4: Создание функций бота
После того, как мы создали базовый бот в предыдущей главе, мы можем начать добавлять функциональность, чтобы наш бот был более полезным для пользователей. В этой главе мы рассмотрим создание функций для нашего бота.
Давайте представим, что мы хотим создать функцию, которая будет отправлять пользователю случайную цитату. Для этого мы можем использовать API сайта They Said So, который предоставляет доступ к большому количеству цитат известных людей.
Для начала, нам нужно получить API-ключ от сайта They Said So. Затем мы можем использовать библиотеку requests для отправки запросов на сервер сайта и получения случайной цитаты.
import requests
def get_quote:
url = "https://api.theysaidso.com/quote/random"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers)
quote = response.json["contents"]["quote"]
return quote
Эта функция отправляет GET-запрос на сервер сайта They Said So и получает случайную цитату в формате JSON. Затем мы извлекаем цитату из ответа и возвращаем ее.
Теперь, чтобы использовать эту функцию в нашем боте, мы можем создать новый обработчик команды "/quote", который будет вызывать функцию get_quote и отправлять полученную цитату пользователю: