Как занести данные в google tables с помощью javascript?
ВСем привет!
Есть такой ответ от api:
{"latitude":55.75,"longitude":37.625,"generationtime_ms":0.0909566879272461,"utc _offset_seconds":0,"timezone":"GMT","timezone_abbreviation":"GMT","elevation":14 1.0,"daily_units":{"time":"iso8601","temperature_2m_max":"°C"},"daily":{"time":["2023-10-23","2023-10-24","2023-10-25","2023-10-26","2023-10-27","2023-10-28","2023-10-29"],"temperature_2m_max":[5.2,3.0,0.6,-0.2,-1.2,-0.4,-0.7]}}
Пытаюсь написать функцию, которая погоду ("temperature_2m_max":[5.2,3.0,0.6,-0.2,-1.2,-0.4,-0.7]) занесет в каждую ячейку.
function callWeather() {
var response = UrlFetchApp.fetch("https://api.open-meteo.com/v1/forecast?latitude=55... T");
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data);
Logger.log(data["temperature_2m_max"]);
//хочу обратиться к первому элементу массива, но ...
Logger.log(data["temperature_2m_max"][0]);
}
на последней строке ошибка: TypeError: Cannot read properties of undefined (reading '0')
Дополнительно:
Как на счет...
data['daily']['temperature_2m_max'][0]
?
Не понятно только, при чем тут google tables, которые скорее google sheets, если проблема в коде.
- конечно же sheets. ну вот на столько я не разбираюсь)
А как теперь в ячейки температуру занести?
я пытаюсь:
sheet.getRange(sheet.getLastRow() + 1,1).setValue([data]); - YurchenkoAN, https://developers.google.com/apps-script/referenc...
- Ошибка связана с тем, что в возвращаемом объекте нет непосредственно ключа "temperature_2m_max". Он находится в объекте "daily". Попробуйте обратиться к "temperature_2m_max" через "daily".
function callWeather() { var response = UrlFetchApp.fetch("https://api.open-meteo.com/v1/forecast?latitude=55... T"); var json = response.getContentText(); var data = JSON.parse(json); Logger.log(data); Logger.log(data["daily"]["temperature_2m_max"]); Logger.log(data["daily"]["temperature_2m_max"][0]); }
function callWeather() { var response = UrlFetchApp.fetch("https://api.open-meteo.com/v1/forecast?latitude=55... T"); var json = response.getContentText(); var data = JSON.parse(json); Logger.log(data); Logger.log(data["daily"]["temperature_2m_max"]); Logger.log(data["daily"]["temperature_2m_max"][0]); }
- Sergey, а я какой вариант предоставил?)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы занести данные в Google Tables с помощью JavaScript, можно воспользоваться Google Sheets API. Ниже приведен пример кода на JavaScript, который демонстрирует как добавить данные в таблицу Google Sheets:
```html
function addToGoogleTables() {
const CLIENT_ID = 'YOUR_CLIENT_ID';
const API_KEY = 'YOUR_API_KEY';
const SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID';
gapi.load('client:auth2', initClient);
function initClient() {
gapi.client.init({
apiKey: API_KEY,
clientId: CLIENT_ID,
discoveryDocs: ['https://sheets.googleapis.com/$discovery/rest?version=v4'],
scope: 'https://www.googleapis.com/auth/spreadsheets',
}).then(function() {
gapi.auth2.getAuthInstance().signIn();
gapi.client.sheets.spreadsheets.values.append({
spreadsheetId: SPREADSHEET_ID,
range: 'Sheet1!A1:B1',
valueInputOption: 'USER_ENTERED',
values: [['Data 1', 'Data 2']],
}).then(function(response) {
console.log('Data added successfully');
}, function(response) {
console.error('Error adding data');
});
});
}
}
```
Прежде чем использовать данный код, необходимо заменить значения переменных CLIENT_ID, API_KEY и SPREADSHEET_ID на свои собственные. Также убедитесь, что в настройках вашего проекта в Google Console включено Google Sheets API.
Этот код инициализирует клиента Google API, а затем добавляет новую строку с данными 'Data 1' и 'Data 2' в указанный диапазон листа таблицы Google Sheets. После успешного выполнения операции добавления данных будет выведено сообщение "Data added successfully".
Надеюсь, этот пример поможет вам решить вашу проблему с занесением данных в Google Tables с помощью JavaScript. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.