Functions アクションは 1 つのパラメーターを受け⼊れます。このパラメーターは JSON オブジェクトでなければなりません。 * * @return このアクションの出⼒。この出⼒は、JSON オブジェクトでなければなりません。 * */ var request = require('request'); var main = function(params){ var options = { json:true, auth:{ 'user':'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', 'password':'XXXXXXXX' } } return new Promise(function(resolve, reject) { // 名称から緯度と経度を取得。 options.url = 'https://twcservice.au-syd.mybluemix.net/api/weather/v3/location/search?query=' + encodeURI(params.location) + '&language=ja-JP'; request.get(options, function (error, response, body) { if (!error && response.statusCode == 200) { var lat = body.location.latitude[0]; var lng = body.location.longitude[0]; // 天気予報をゲット! options.url = 'https://twcservice.au-syd.mybluemix.net/api/weather/v1/geocode/' + lat + '/' + lng + '/forecast/daily/3day.json?language=ja-JP'; request.get(options, function (error, response, body){ if (!error && response.statusCode == 200) { // narrative は天気予報を⽂章で教えてくれる var forecast = body.forecasts[1].narrative; // ⾳声出⼒(TextToSpeech) に合わせて、記号をひらがなに変換 forecast = forecast.replace(/ 〜/g," から"); forecast = forecast.replace(/-/g," マイナス"); resolve({"forecast":forecast,"statusCode":response.statusCode}); }else{ reject(); } }) } else { reject(); } }); }) } 38