こんにちは、ゆきぽんずです
今日は、javascriptで外部API(openweathermap)を使って天気予報をしていきます
まず実行結果からどうぞ
実行結果
こんな感じで結果が出力できます
下にソースコードを書いておきます
基礎的な内容はおさえているので、これを使って自分でアレンジしてみてください
それではソースコードをどうぞ(今回は分かりやすさを優先してCSSは書いていません)
htmlファイル名 : index.html
<html lang="ja">
<head>
<title>天気予報API</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
</head>
<body>
<ul id='messages'>
</ul>
<script src="weatherForcast.js"></script>
</body>
</html>
まぁhtmlで大事なのは、結果を表示するところを忘れないことです
ではメインのjavascriptファイルを見ていきます
javascriptファイル名 : weatherForcast.js
var messageList = $('#messages');
var request = new XMLHttpRequest();
var cityName = "tokyo";
var owmApiKey = "自分が取得したAPI";
var owmURL = "http://api.openweathermap.org/data/2.5/weather?q="+ cityName +"&APPID="+ owmApiKey +"";
request.open('GET', owmURL, true);
request.responseType = 'json';
request.onload = function () {
var data = this.response;
console.log(data);
var messageElement = $("<il><p class='weather'>" + data["weather"][0]["main"] + "</p></il>");
messageList.append(messageElement);
};
request.send();
以上です
コメント文でコードの内容を補足しているので、詳しい説明は省きます
コメント文を書いているところを理解してくだされば、とりあえず問題はないと思います(このソースコードをアレンジするという部分では)
外部APIを参照するためには、APIキーが必要になります
APIキーの取得方法については、こちらの記事が分かりやすく紹介してくださっているので、こちらを見てください
https://usortblog.com/openweathermap-appid-required/
感想
javascriptで外部のAPIとやりとりできるのは嬉しいですね(実際はjavascript自身が通信しているわけではありませんが...(;^ω^))
色々応用が出来そうですね
今日の内容は以上になります
少しでも参考になっていれば幸いです
あなたのそばにゆきぽんず