Instantly share code, notes, and snippets.

Embed
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);
});
});
@cmaneu

This comment has been minimized.

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

This comment has been minimized.

justinr commented Dec 2, 2014

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

@metasim

This comment has been minimized.

metasim commented Mar 5, 2015

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

@seanwalsh

This comment has been minimized.

seanwalsh commented Apr 2, 2015

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

@khoi-thinh

This comment has been minimized.

khoi-thinh commented Mar 16, 2016

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

This comment has been minimized.

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