Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Watson Assistant×Slack Botがリモートで働く社員を繋ぐ

Watson Assistant×Slack Botがリモートで働く社員を繋ぐ

水曜ワトソンカフェvol.25「Watson Assistant×Slack Bot」
登壇資料
https://bmxug.connpass.com/event/176610/

Yosuke Enomoto

June 03, 2020
Tweet

More Decks by Yosuke Enomoto

Other Decks in Technology

Transcript

  1. 36

  2. 取得コードは下記の通りです。(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