Telegram-бот с погодой: различия между версиями

Материал из Поле цифровой дидактики
Новая страница: «{{Scripting Tutorials |Description=Telegram-бот «Погода» — это чат-бот, который по запросу пользователя предоставляет актуальную информацию о погоде в выбранном городе. Пользователь отправляет название города или использует команду, а бот с помощью OpenWeather API получает дан...»
 
Нет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Scripting Tutorials
{| class="wikitable"
|Description=Telegram-бот «Погода» — это чат-бот, который по запросу пользователя предоставляет актуальную информацию о погоде в выбранном городе. Пользователь отправляет название города или использует команду, а бот с помощью OpenWeather API получает данные о температуре, ощущаемой температуре и описании погоды, после чего отправляет их в удобном виде.
|-
|Область знаний=Программирование на Python, Разработка чат-ботов, Работа с API, Веб-технологии
! Параметр
|Среда разработки=Telegram Bot API, Python, aiogram, requests
! Описание
|-
| Описание
| Telegram-бот «Погода» — это чат-бот, который по запросу пользователя предоставляет актуальную информацию о погоде в выбранном городе. Пользователь отправляет название города или использует команду, а бот с помощью OpenWeather API получает данные о температуре, ощущаемой температуре и описании погоды, после чего отправляет их в удобном виде.
|-
| Область знаний
| Программирование на Python, Разработка чат-ботов, Работа с API, Веб-технологии
|-
| Среда разработки
| Telegram Bot API, Python, aiogram, requests
|}
 
Шаги разработки:
{{#mermaid:
flowchart TB
    A[Начало] --> B(Создать Telegram-бота)
    B --> C(Получить API-ключ OpenWeather)
    C --> D(Установить библиотеки)
    D --> E(Написать код бота)
    E --> F[Готово]
}}
}}
Логика работы бота:
{{#mermaid:
flowchart TB
    A[Пользователь вводит город] --> B(Бот получает сообщение)
    B --> C(Отправляет запрос к OpenWeather API)
    C --> D(Получает JSON)
    D --> E{JSON получен?}
   
    E -->|Нет| F[Ошибка / повтор запроса]
    F --> C
   
    E -->|Да| G(Извлекает температуру и описание)
    G --> H(Формирует ответ)
    H --> I(Отправляет сообщение пользователю)
    I --> J[Готово]
}}
Шаг первый - Создание Telegram бота
[[Файл:Createbot.png]]
Шаг второй - Регистрация на сайте OpenWeather и получение API ключа
[[Файл: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)

Шаг четвертый - Осуществление запросов к боту