取得コードは下記の通りです。(Node.js)
/**
*
* main()
このアクションを呼び出すときに実⾏されます
*
* @param Cloud 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