初めまして&Node.jsで天気予報

挨拶

はじめまして。グロージェントの中の人のRYです。
このブログでは私の個人的な技術メモを残していこうかと考えています。
以前は個人的にブログに書いていたのですが、最近停滞気味…なので会社の名前を借りて少し頑張ろうかと!
あくまでも個人で書いているものなので間違いなどもあるとは思いますが、ご了承下さい。
ツッコミは勉強にもなるので歓迎します。
堅苦しいことはやめにして早速書いていこうと思います。

天気情報のAPIを使ってみる!

初回は何をしようかと思っていたのですが、最初からあまり気合い入れると続かない気がするのでw、かなりお気楽な感じにしました。
言語はNode.js(JavaScript)です。

まずプロジェクト作成

初回ということで、ここらへんも書いておきます。
とりあえず東京の天気が知りたいので、プロジェクト名はweather-tokyo-jsとかにしておきますね。

mkdir weather-tokyo-js
cd weather-tokyo-js

package.jsonを生成

nodeなのでnpmを使ってpackage.jsonを作ります。

npm init

今回は本当に短いスクリプトなので適当に入力、テストもなし。
最後にyをタイプしてプロジェクトを作ります。

使用するモジュールのインストール

次にモジュールのインストールです。

npm i request xml2js --save

使うAPIの選定

先ほどのモジュールインストールで分かったと思いますが、今回はXMLで天気情報を返すAPIを使いました。
理由としては、何も設定しなくても取得できて無料だからです。
http://www.drk7.jp/weather/
ご利用上の注意点を読むと個人利用を前提としているもののようなので、そこらへん気を付けましょう。
(JSONPもあるみたいだけど、単純にその前にXMLで実装してしまった…)

ファイル作成

スクリプトのファイルを作ります。
今回は適当にnpm initでmainになってしまったindex.jsというファイル名にしました。

コードを書いていく

短いので全部載せましょう

var request = require('request');
var parseString = require('xml2js').parseString;

url = 'http://www.drk7.jp/weather/xml/13.xml';

request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        parseString(body, function (err, result) {

            var day = result.weatherforecast.pref[0].area[3].info[0]['$'].date + "\n";
            var weather = result.weatherforecast.pref[0].area[3].info[0].weather[0] + "\n";
            var detail = result.weatherforecast.pref[0].area[3].info[0].weather_detail[0] + "\n";
            var max = "最高気温は" + result.weatherforecast.pref[0].area[3].info[0].temperature[0].range[0]._ + "度\n";
            var min = "最低気温は" + result.weatherforecast.pref[0].area[3].info[0].temperature[0].range[1]._ + "度です";

            var message = "おはようございます。天気予報です\n" + day + weather + detail + max + min;

            console.log(message);

        });
    } else {
        console.log(error + " : " + response);
    }

});

まず最初にインストールしたモジュールを読み込んでいます。
urlは先ほどのから東京地方を選択。
そのあと、取得したXMLをJavaScriptのオブジェクトに変換し、そこから自分が欲しい情報をとっています。

node index.js

を実行すると

おはようございます。天気予報です
2015/11/05
晴れ時々くもり
南東の風 晴れ
最高気温は21度
最低気温は11度です

こんな感じで出力されます。

ちなみに私は自分のバンドで使っているTypetalkというサービスに毎朝これを流しています。

GitHubにあげました

基本的にこのブログで書いたものはGitHubに出そうと思っています。
個人のアカウントで上げたので参考にしていただければ。

https://github.com/shizukukun/weather-tokyo-js

最後に

初めて会社ブログでの記事書きましたが、これからも細々と続けようと思いますので、よろしくお願いします。

About the author

Ryu Seino
Ryu Seino

2015年入社。
コンシューマー向けWebサービス、商社の基幹システムなどを担当した後、2016年の途中から管理部システム課に所属となる(ちなみに一人しかいない)。
好きな動物はペンギン🐧
都内にて一人飲酒業務に精を出していたが、諸事情により活動休止。
最近の趣味としては銭湯(含スーパー銭湯)に行く事と水族館に行く事。

Add Comment

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Ryu Seino By Ryu Seino

最近の投稿

アーカイブ

カテゴリー

タグクラウド

コーポレートサイト