CommandHandler, Updater # Здесь нужно подставить свой токен от Telegram бота


Download 13.65 Kb.
Sana18.06.2023
Hajmi13.65 Kb.
#1557263
Bog'liq
Код бота с погодой


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