Вход/Регистрация
Telegram Bot. Руководство по созданию бота в мессенджере Телеграм
вернуться

Демиденко Артем

Шрифт:

def quote(update, context):

quote = get_quote

context.bot.send_message(chat_id=update.effective_chat.id, text=quote)

updater.dispatcher.add_handler(CommandHandler('quote', quote))

Мы добавили обработчик команды "/quote", который вызывает функцию get_quote и отправляет полученную цитату пользователю.

Также мы можем добавить функцию, которая будет отправлять пользователю случайную картинку кота. Для этого мы можем использовать API сайта TheCatAPI, который предоставляет доступ к большому количеству фотографий котов.

def get_cat_image_url:

url = "https://api.thecatapi.com/v1/images/search"

response = requests.get(url)

image_url = response.json[0]["url"]

return image_url

Эта функция отправляет GET-запрос на сервер сайта TheCatAPI и получает случайную фотографию кота в формате JSON. Затем мы извлекаем URL изображения и возвращаем его.

Теперь мы можем создать обработчик команды "/cat", который будет вызывать функцию get_cat_image_url и отправлять пользователю полученную картинку кота:

def cat(update, context):

image_url = get_cat_image_url

context.bot.send_photo(chat_id=update.effective_chat.id, photo=image_url)

updater.dispatcher.add_handler(CommandHandler('cat', cat))

Для того чтобы наш бот стал еще более функциональным, мы можем добавить ему возможность получения прогноза погоды. Для этого мы можем использовать API сайта OpenWeatherMap.

Для начала, мы должны получить API-ключ от сайта OpenWeatherMap и установить библиотеку pyowm, которая облегчает работу с API. Затем мы можем создать функцию, которая будет получать текущую погоду для заданного города:

import pyowm

owm = pyowm.OWM('your-api-key')

def get_weather(city):

observation = owm.weather_at_place(city)

weather = observation.get_weather

temperature = weather.get_temperature('celsius')['temp']

status = weather.get_detailed_status

return f"Current weather in {city}: {status}. Temperature: {temperature}°C"

Эта функция получает текущую погоду для заданного города, используя API сайта OpenWeatherMap. Мы извлекаем температуру и детальный статус погоды, а затем формируем строку с информацией о погоде.

Теперь мы можем создать обработчик команды "/weather", который будет вызывать функцию get_weather и отправлять пользователю информацию о погоде для заданного города:

def weather(update, context):

text = update.message.text

city = text.split(' ')[1]

weather = get_weather(city)

context.bot.send_message(chat_id=update.effective_chat.id, text=weather)

updater.dispatcher.add_handler(CommandHandler('weather', weather))

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

Теперь наш бот имеет три функции: отправку случайной цитаты, отправку случайной картинки кота и получение информации о погоде для заданного города. Мы можем продолжать добавлять новые функции, чтобы сделать наш бот еще более полезным и интересным для пользователей.

Конец ознакомительного фрагмента.

  • 1
  • 2
  • 3

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: