エンジニア プログラミング

GASで天気予報を取得する方法について解説!

こんにちは!
今回はGASを使って特定の地域の天気予報を定期的に取得してみました。

天気予報をAPIから取得する

天気予報はOpenWeatherMapのAPIを活用しました。
https://openweathermap.org/

このままでもWebサイト上で天気予報は見れますが、今回はこちらの情報をAPIを使って取得します。
無料枠では1分間に60回まで、3時間ごとの天気予報を5日分まで取得できます。会員登録することでAPIキーを発行できます。
https://openweathermap.org/price

GASでAPIをたたいてみる

GASで以下のようなスクリプトを書いてAPIから天気予報を取得します。
コードはすごく短くシンプルで指定した都市名の今後の天気が取得できます。

const OPEN_WEATHER_MAP_API_KEY = '取得したAPIキーを入れる';

function getWeatherForecast() {
  var city = 'Tokyo';
  var url = 'https://api.openweathermap.org/data/2.5/forecast?q=' + city + '&appid=' + OPEN_WEATHER_MAP_API_KEY + '&lang=ja&units=metric';

  var response = UrlFetchApp.fetch(url);
  Logger.log(response.getContentText());
  return response;
}

実行結果

実行してみると以下のようなJSON形式(長いので途中省略)で取得できるので、
あとはJSONパースして必要なデータを抽出すれば欲しいデータが取得できます。

	Logging output too large. Truncating output. {"cod":"200","message":0,"cnt":40,"list":[{"dt":1726336800,"main":{"temp":28.57,"feels_like":33.2,"temp_min":28.16,"temp_max":28.57,"pressure":1010,"sea_level":1010,"grnd_level":1008,"humidity":78,"temp_kf":0.41},"weather":[{"id":803,"main":"Clouds","description":"曇りがち","icon":"04n"}],"clouds":{"all":52},"wind":{"speed":7.68,"deg":201,"gust":11.67},"visibility":10000,"pop":0,"sys":{"pod":"n"},"dt_txt":"2024-09-14 18:00:00"}

AIとの連携について

今回は天気予報のAPIを紹介しましたが、ChatGPTやGeminiなどのAIとの連携をするために使いました。
AI関連のAPIにそのまま天気を質問するとハルシネーションにより嘘の天気予報を回答され期待する結果が得られませんでした。(今後改善されてくかとは思いますが)

ですので嘘を言われたらまずい情報は別途取得して取得した情報をもとにAIに加工してもらうのが有効な使い方かな、と思いました。
AIは優秀なのでAPIで取得したJSONを加工無しで渡しても期待する形に加工して良い結果を回答してくれるので便利ですね。

  • この記事を書いた人

あるせ

上場ゲーム会社の現役プログラマーで1児の父です。 プログラミングを始めたい方向けのライトな記事からゲーム開発の現場で得た知見まで幅広く発信します!

PickUp

1

はじめに Google Geminiは、Googleが提供する高性能なAIモデルです。今回は、Google Apps Script(GAS)を使ってGoogle GeminiのAPIを呼び出す方法を紹 ...

2

Cursorとは? Cursorは、AIを利用したコード補完ツールで、プログラムを書く際に提案をしてくれるだけでなく、指示に基づいてコードを生成してくれます。スクリプトを自動生成したり、バグの修正やリ ...

3

bool変数の命名の重要性 プログラムを書くとき、bool型の変数名の付け方はとても重要です!なぜなら、コードを読む人にとって、変数名からその役割が直感的に分かることが求められるからです。bool値は ...

4

記事文章 はじめに WordPressを使ってブログを運営していると、毎回アイキャッチ画像を設定するのが手間ですよね!今回は、アイキャッチ画像を自動で生成するプラグインの作り方をご紹介します。これで作 ...

5

第1位: SourceTree SourceTreeは、無料で使える高機能なGitクライアントです。直感的なUIで操作がしやすく、初めてGitを使う人にもぴったり!ブランチの管理やマージが簡単にできる ...

6

はじめに インターネットの回線速度が気になることってありますよね!今回は、5分ごとに回線速度を計測し、そのデータをグラフにする方法を紹介します。PythonとSpeedtest CLIを使えば、比較的 ...

7

Pythonで画像ファイルを連番リネームをしてみたのでやった方法について記載します!連番リネームは、画像を整理する際や特定の用途に合わせてファイル名を統一したいときに便利です。 Pythonでの連番リ ...

-エンジニア, プログラミング
-, , ,