Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Slack slackbot send weather forecast
var request = require("request");
// The Cities IDs can be found on openweathermap.org (make a search, and look the URI)
var cities = [2988507, 5391959];
var slackBotUri = ""; // TODO: Complete
request("http://api.openweathermap.org/data/2.5/group?id="+cities.join(',')+"&units=metric ", function(error, response, body) {
// Maybe we can handle this differently/better ?
if(error != null)
return;
var text = "Hello team, here is the weather forecast for today: \n";
var weatherForecasts = JSON.parse(body);
for (var i = weatherForecasts.list.length - 1; i >= 0; i--) {
var currentCity= weatherForecasts.list[i];
text += "*"+currentCity.name+"*: ";
text += ":" + currentCity.weather[0].icon + ": ";
text += currentCity.weather[0].main + ", " + currentCity.weather[0].description + ". ";
text += "Temp: " + currentCity.main.temp + "°c. "
text += "\n";
};
console.log(text);
request.post({
url: slackBotUri,
body: text
}, function(error, response, body){
console.log(body);
});
});
Owner

cmaneu commented Sep 17, 2014

If you want to display the forecast icons, you must add custom emoji to your slack instance. You can download/see all used icons here : http://openweathermap.org/weather-conditions

justinr commented Dec 2, 2014

How do I implement this in Slack? Do I use webhooks for this?

metasim commented Mar 5, 2015

Ditto... how do you install this in Slack?

He has a variable called slackBotUri. Set that to the URI that you have setup as a webhook integration.

Could someone tell me exactly how to do this?
Download this file, install Node.js, input webhook url into slackBotUri, run with the command: node slackWeather.js, is that right?
If so, it didn't work for me.
module.js:340
throw err;
^
Error: Cannot find module 'request'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/root/slackWeather.js:1:77)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)

djui commented Apr 28, 2016

@thinhduckhoi npm install request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment