wrapper for the forecast.io API
JavaScript Makefile
Switch branches/tags
Latest commit d1a8c86 Sep 22, 2016 @mateodelnorte committed on GitHub Merge pull request #13 from vightel/master
Support time as string

README.md

forecast.io

A simple wrapper for the awesome Dark Sky API: https://darksky.net/dev/docs

How to use it:

Require darksky

var DarkSky = require('forecast.io');

Instantiate an instance of Forecast. You'll need to provide options specifying your darksky API Key. You may also add a timeout option, which defaults to 2500 if not provided.

var options = {
  APIKey: process.env.DARKSKY_API_KEY,
  timeout: 1000
},
darksky = new DarkSky(options);

Make a call to the API using the get or getAtTime methods.

The get function calls to the https://api.darksky.net/forecast/APIKEY/LATITUDE,LONGITUDE endpoint.

darksky.get(latitude, longitude, function (err, res, data) {
  if (err) throw err;
  log('res: ' + util.inspect(res));
  log('data: ' + util.inspect(data));
});

getAtTime calls the similar endpoint with time specified: https://api.darksky.net/forecast/APIKEY/LATITUDE,LONGITUDE,TIME.

var time = new Date().setDate(0); // lets use an arbitrary date
var unixTime = Math.floor(time.getTime()/1000); //Get the UNIX timestamp needed for the api.

darksky.getAtTime(latitude, longitude, unixTime, function (err, res, data) {
  if (err) throw err;
  log('res: ' + util.inspect(res));
  log('data: ' + util.inspect(data));
});

Additional:

Both get and getAtTime functions accept optional parameters to accommodate the optional query string params available for the forecast API calls. The following call is, for instance, possible and will return only the current property and its child properties:

var options = {
  exclude: 'minutely,hourly,daily,flags,alerts'
};
darksky.get(latitude, longitude, options, function (err, res, data) {
  if (err) throw err;
  log('res: ' + util.inspect(res));
  log('data: ' + util.inspect(data));
});