AttributeError: 'int' object has no attribute 'chat', объясните пожалуйста в чем проблема?
import telebot
import time
import requests
api_key = "xxxxx"
bot = telebot.TeleBot('xxxx')
@bot.message_handler(commands=['start'])
def start(message):
keyboard = telebot.types.ReplyKeyboardMarkup(True)
keyboard.row('Vkontakte', 'Telegram ID')
keyboard.row('Обо мне', '/weather')
keyboard.row('Сайт ITHUB', 'Часто используемые ресурсы')
keyboard.row('/help', '/photo')
bot.send_message(message.chat.id, 'Добро пожаловать!\nС помощью клавиатуры выберите нужное Вам действие.' , reply_markup=keyboard)
@bot.message_handler(commands=['weather'])
def weather(message):
bot.reply_to(message.chat.id, "Введи название города, чтобы узнать погоду.")
bot.register_next_step_handler(message, get_weather)
def get_weather(message):
city = message.text
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric" # API-запрос к OpenWeatherMap
response = requests.get(url).json()
try:
temp = response['main']['temp']
feels_like = response['main']['feels_like']
descr = response['weather'][0]['description']
wind_speed = response['wind']['speed']
humidity = response['main']['humidity']
# Формирование сообщения с погодой
weather_message = f"Погода в городе {city.capitalize()}:\n\nТемпература: {temp}°C\nОщущается как: {feels_like}°C\nСкорость ветра: {wind_speed} м/с\nВлажность: {humidity}%"
bot.send_message(message.chat.id, weather_message)
bot.send_message(message.chat.id, "Введите новый город или отправьте команду /start")
bot.register_next_step_handler(message, get_weather) # Вызов функции для следующего город
except KeyError:
bot.send_message(message.chat.id, "Город не найден. Попробуйте ввести другой город или отправьте команду /start")
Бот выполняет все функции, которые в нём заложены, но при вызове команды /weather выдаёт ошибку: AttributeError: 'int' object has no attribute 'chat'
Источник: Stack Overflow на русском