Telegram-бот с погодой: различия между версиями
Материал из Поле цифровой дидактики
Нет описания правки |
Нет описания правки |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 50: | Строка 50: | ||
[[Файл:Getkey.png]] | [[Файл:Getkey.png]] | ||
Шаг третий - Написание Python-скрипта для работы бота | |||
<syntaxhighlight lang="python"> | |||
import requests | |||
from aiogram import Bot, Dispatcher, types | |||
from aiogram.types import Message | |||
from aiogram.utils import executor | |||
BOT_TOKEN = "-" | |||
WEATHER_API_KEY = "-" | |||
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) | |||
</syntaxhighlight> | |||
Шаг четвертый - Осуществление запросов к боту | |||
[[Файл:Workingbot.png]] | |||
[[Категория:Работа с API]] | |||
Текущая версия от 10:39, 27 марта 2026
| Параметр | Описание |
|---|---|
| Описание | 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 = "-"
WEATHER_API_KEY = "-"
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)
Шаг четвертый - Осуществление запросов к боту



