挨拶
はじめまして。グロージェントの中の人の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
最後に
初めて会社ブログでの記事書きましたが、これからも細々と続けようと思いますので、よろしくお願いします。