CommandHandler, Updater # Здесь нужно подставить свой токен от Telegram бота
Download 13.65 Kb.
|
Код бота с погодой
import requests import json import telegram from telegram.ext import CommandHandler, Updater # Здесь нужно подставить свой токен от Telegram бота TOKEN = 'your_bot_token' # Здесь нужно подставить свой API-ключ от OpenWeatherMap API_KEY = 'your_api_key' def start(bot, update): bot.send_message(chat_id=update.message.chat_id, text='Привет! Я могу показать тебе погоду. Введи название города.') def get_weather(city_name): # Форматируем URL для получения погоды по городу url = f'http://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={API_KEY}&units=metric' # Отправляем запрос на сервер OpenWeatherMap response = requests.get(url) # Если запрос прошёл успешно (код 200), то получаем данные о погоде if response.status_code == 200: data = json.loads(response.text) temp = data['main']['temp'] description = data['weather'][0]['description'] message = f'Температура в городе {city_name}: {temp}°C\n{description}' else: message = 'Не удалось получить погоду. Проверьте название города.' return message def show_weather(bot, update): city_name = update.message.text message = get_weather(city_name) bot.send_message(chat_id=update.message.chat_id, text=message) def main(): updater = Updater(TOKEN) dp = updater.dispatcher dp.add_handler(CommandHandler('start', start)) dp.add_handler(telegram.ext.MessageHandler(telegram.ext.Filters.text, show_weather)) updater.start_polling() updater.idle() if __name__ == '__main__': main() Download 13.65 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling