Telegram-бот с погодой
Материал из Поле цифровой дидактики
| Параметр | Описание |
|---|---|
| Описание | Telegram-бот «Погода» — это чат-бот, который по запросу пользователя предоставляет актуальную информацию о погоде в выбранном городе. Пользователь отправляет название города или использует команду, а бот с помощью OpenWeather API получает данные о температуре, ощущаемой температуре и описании погоды, после чего отправляет их в удобном виде. |
| Область знаний | Программирование на Python, Разработка чат-ботов, Работа с API, Веб-технологии |
| Среда разработки | Telegram Bot API, Python, aiogram, requests |
Шаги разработки:
Логика работы бота:
Шаг первый - Создание Telegram бота
Шаг второй - Регистрация на сайте OpenWeather и получение API ключа
Шаг третий - Написание Python-скрипта для работы бота
import requests
from aiogram import Bot, Dispatcher, types
from aiogram.types import Message
from aiogram.utils import executor
BOT_TOKEN = "8788708468:AAGZvdJejGPsjgTO-hj-6EqcU22y9OmsMek"
WEATHER_API_KEY = "769f58cdb59103b232299f65d5e06709"
bot = Bot(token=BOT_TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start(message: Message):
await message.answer("Напиши название города 🌍")
@dp.message_handler()
async def get_weather(message: Message):
city = message.text
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={WEATHER_API_KEY}&units=metric&lang=ru"
response = requests.get(url)
data = response.json()
if data.get("cod") != 200:
await message.answer("❌ Город не найден")
return
temp = data["main"]["temp"]
feels = data["main"]["feels_like"]
desc = data["weather"][0]["description"]
answer = (
f"🌆 Город: {city}\n"
f"🌡 Температура: {temp}°C\n"
f"🤔 Ощущается как: {feels}°C\n"
f"☁️ Погода: {desc}"
)
await message.answer(answer)
if __name__ == "__main__":
executor.start_polling(dp)
Шаг четвертый - Осуществление запросов к боту



