以下のコードにて取得を試みていますが、上手くいきません。
是非ご指導いただきたく。
(function() {
"use strict";
// OpenWeatherMap APIの設定
const apiKey = " **********"; // OpenWeatherMapのAPIキー
const apiUrl = "https://api.openweathermap.org/data/2.5/forecast";
// kintoneのフィールドコードの設定
const postalCodeFieldCode = "郵便番号";
const weatherForecastFieldCode = "天気";
// kintoneレコードのフィールド変更イベントリスナー
kintone.events.on("app.record.edit.change." + postalCodeFieldCode, function(event) {
const record = event.record;
const postalCode = record[postalCodeFieldCode].value;
if (postalCode) {
// OpenWeatherMap APIにリクエストを送信
const requestUrl = `${apiUrl}?zip=${postalCode}&appid=${apiKey}&units=metric&cnt=5`;
kintone.proxy(requestUrl, "GET", {}, {}, function(response) {
const data = JSON.parse(response[0]);
const weatherForecast = parseWeatherForecast(data);
// 天気予報をkintoneのフィールドに表示
record[weatherForecastFieldCode].value = weatherForecast;
});
}
return event;
});
// OpenWeatherMap APIのレスポンスをパースして天気予報を取得
function parseWeatherForecast(data) {
const forecasts = data.list.map(function(forecast) {
const dateTime = new Date(forecast.dt * 1000);
const date = dateTime.toLocaleDateString("ja-JP", { weekday: "short" });
const temperature = Math.round(forecast.main.temp);
const description = forecast.weather[0].description;
return `${date}: ${temperature}℃, ${description}`;
});
return forecasts.join("");
}
})();