объект VK и передаем токен вашего сообщества
const vk = new VK({
token: 'YOUR_ACCESS_TOKEN'
});
// Регистрируем обработчик сообщений
vk.updates.on('message_new', async (context) => {
// Получаем текст сообщения пользователя
const message = context.text.toLowerCase();
// Проверяем, начинается ли сообщение с команды "температура"
if (message.startsWith('температура')) {
// Извлекаем название города из сообщения пользователя
const city = message.slice(11).trim();
try {
// Получаем данные о погоде из API OpenWeatherMap
const response = await fetch(`http://api.openweathermap.org/data/2.5/weather?q=${city}&appid=YOUR_API_KEY&units=metric`);
const data = await response.json();
// Извлекаем текущую температуру из полученных данных
const temperature = data.main.temp;
// Отправляем сообщение с текущей температурой
await context.send(`Температура в городе ${city} сейчас: ${temperature}°C`);
} catch (error) {
console.error(error);
await context.send('Произошла ошибка при получении данных о погоде');
}
}
});
// Запускаем бот
vk.updates.start().catch(console.error);
Такой код выдает ошибку:
TypeError: Cannot read properties of undefined (reading 'temp')
at /storage/emulated/0/Script/weather.js:25:37
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /storage/emulated/0/Script/node_modules/middleware-io/lib/index.js:280:9
Что с этим делать?
прочитать typeError
Я вижу, что он не может прочитать temp, но почему
Просто перед temp поставь знак вопроса
А вы прописали API ключи для бота и для сервиса погоды?
Это я также исправил
Обсуждают сегодня