У меня есть правильный код для бота с погодой для Telegram, но в процессе работы он выдает ошибку. Как мне исправить эту ошибку?

Как исправить программу бота, чтобы она отправляла только одно сообщение, которое запрашивает у пользователя название города для получения погоды?
  • 5 октября 2023 г. 20:47
Ответы на вопрос 1
Чтобы исправить программу бота и отправить только одно сообщение о запросе названия города для получения погоды, вам нужно сделать некоторые изменения в коде. Вот пример исправленного кода:

```python
import telebot
import requests

bot = telebot.TeleBot('YOUR_BOT_TOKEN')

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Введите название города')

@bot.message_handler(content_types=['text'])
def send_weather(message):
    city = message.text
    
    url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_API_KEY&units=metric'
    response = requests.get(url)
    weather_data = response.json()
    
    if weather_data['cod'] == 200:
        temperature = weather_data['main']['temp']
        description = weather_data['weather'][0]['description']
        bot.send_message(message.chat.id, f"Погода в городе {city}: {temperature}°C, {description}")
    else:
        bot.send_message(message.chat.id, 'Город не найден')

bot.polling()
```

Пожалуйста, убедитесь, что у вас есть правильный токен бота Telegram и ключ API погодного сервиса OpenWeatherMap. Замените `'YOUR_BOT_TOKEN'` и `'YOUR_API_KEY'` соответственно. Также убедитесь, что у вас установлены библиотеки `telebot` и `requests`, и выполните `pip install telebot requests` в командной строке, если они не были установлены.
Похожие вопросы