Чего я пытаюсь достичь :
Передайте параметры в облачную функцию, развернутую в IBM Cloud.
Что я пробовал :
Ниже приведены параметры, которые я сохраняю в узле Watson Assistant и пытаюсь передать в облачную функцию IBM.
"parameters": {
"startTime": "$startTime",
"locationName": "$locationName"
},
Ниже приведены коды, которые я использовал для подключения к своей облачной функции IBM:
{
"context": {
"private": {
"my_credentials": {
"user": "{*//user_id}",
"password": "{*//password}"
}
},
"startTime": "@sys-date",
"locationName": "@TaiwanArea"
},
"output": {
"generic": []
},
"actions": [
{
"name": "/itouristworld_dev/itouristweather/weather",
"type": "cloud_function",
"parameters": {
"locationName": "$locationName"
},
"credentials": "$private.my_credentials",
"result_variable": "result"
}
]
Поэтому я подумал, что параметры $ startTime и $ locationName должны быть переданы в облачную функцию IBM.
Затем в своей облачной функции IBM я использую эти коды:
var request = require("request-promise");
function main(params) {
var options = {
url: "https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?format=json",
headers: {
Authorization: "{key}"
},
qs: {
locationName: `${params.locationName}`
},
json: true,
encoding: "utf-8"
};
return new Promise(function (resolve, reject) {
request(options, function (err, resp) {
if (err) {
console.log(err);
return reject({err: err});
}
return resolve({response: resp.body});
});
});
}
Ответ дает мне целые пакеты данных JSON.
Например, если я хотел бы спросить помощника Ватсона "какая сегодня погода в Тайбэе?"
это дает мне все условия Тайваня вместо области Тайбэй, которые я должен хранить "Тайбэй" как $ locationName.
Что я наблюдал
Я проверяю параметры с помощью «新 北市» (имя области) и param.loactionName в облачной функции IBM. Это дает мне следующие ответы:
【параметры -> "新 北市"】 Это дает мне правильную область, совпадающую с параметрами.
啟動 ID:
4aa67d030b8d45b6a67d030b8db5b6c4
結果:
{
"response": {
"records": {
"datasetDescription": "三十六小時天氣預報",
"location": [
{
"locationName": "新北市",
"weatherElement": [
{
"elementName": "Wx",
"time": [
{
"endTime": "2019-05-18 06:00:00",
"parameter": {
"parameterName": "多雲",
"parameterValue": "4"
},
"startTime": "2019-05-17 18:00:00"
},
{
"endTime": "2019-05-18 18:00:00",
"parameter": {
"parameterName": "多雲",
"parameterValue": "4"
},
"startTime": "2019-05-18 06:00:00"
},
{
"endTime": "2019-05-19 06:00:00",
"parameter": {
"parameterName": "多雲",
"parameterValue": "4"
},
"startTime": "2019-05-18 18:00:00"
}
]
},
{
"elementName": "PoP",
"time": [
{
"endTime": "2019-05-18 06:00:00",
"parameter": {
"parameterName": "20",
"parameterUnit": "百分比"
},
"startTime": "2019-05-17 18:00:00"
},
{
"endTime": "2019-05-18 18:00:00",
"parameter": {
"parameterName": "10",
"parameterUnit": "百分比"
},
"startTime": "2019-05-18 06:00:00"
},
{
"endTime": "2019-05-19 06:00:00",
"parameter": {
"parameterName": "10",
"parameterUnit": "百分比"
},
"startTime": "2019-05-18 18:00:00"
}
]
},
{
"elementName": "MinT",
"time": [
{
"endTime": "2019-05-18 06:00:00",
"parameter": {
"parameterName": "25",
"parameterUnit": "C"
},
"startTime": "2019-05-17 18:00:00"
},
{
"endTime": "2019-05-18 18:00:00",
"parameter": {
"parameterName": "25",
"parameterUnit": "C"
},
"startTime": "2019-05-18 06:00:00"
},
{
"endTime": "2019-05-19 06:00:00",
"parameter": {
"parameterName": "24",
"parameterUnit": "C"
},
"startTime": "2019-05-18 18:00:00"
}
]
},
{
"elementName": "CI",
"time": [
{
"endTime": "2019-05-18 06:00:00",
"parameter": {
"parameterName": "舒適"
},
"startTime": "2019-05-17 18:00:00"
},
{
"endTime": "2019-05-18 18:00:00",
"parameter": {
"parameterName": "舒適至悶熱"
},
"startTime": "2019-05-18 06:00:00"
},
{
"endTime": "2019-05-19 06:00:00",
"parameter": {
"parameterName": "舒適至悶熱"
},
"startTime": "2019-05-18 18:00:00"
}
]
},
{
"elementName": "MaxT",
"time": [
{
"endTime": "2019-05-18 06:00:00",
"parameter": {
"parameterName": "26",
"parameterUnit": "C"
},
"startTime": "2019-05-17 18:00:00"
},
{
"endTime": "2019-05-18 18:00:00",
"parameter": {
"parameterName": "32",
"parameterUnit": "C"
},
"startTime": "2019-05-18 06:00:00"
},
{
"endTime": "2019-05-19 06:00:00",
"parameter": {
"parameterName": "29",
"parameterUnit": "C"
},
"startTime": "2019-05-18 18:00:00"
}
]
}
]
}
]
},
"result": {
"fields": [
{
"id": "datasetDescription",
"type": "String"
},
{
"id": "locationName",
"type": "String"
},
{
"id": "parameterName",
"type": "String"
},
{
"id": "parameterValue",
"type": "String"
},
{
"id": "parameterUnit",
"type": "String"
},
{
"id": "startTime",
"type": "Timestamp"
},
{
"id": "endTime",
"type": "Timestamp"
}
],
"resource_id": "F-C0032-001"
},
"success": "true"
}
}
日誌:
[]
【параметры -> params.locationName】 Это дает мне местоположение [], затем я возвращаюсь к Watson Assistant, проверяю диалог, хотя я набираю «新 北市» в качестве ключевого слова, я все равно получаю location [] в качестве обратной связи.
啟動 ID:
6e18ca5d4dfe457198ca5d4dfe45712c
結果:
{
"response": {
"records": {
"datasetDescription": "三十六小時天氣預報",
"location": []
},
"result": {
"fields": [
{
"id": "datasetDescription",
"type": "String"
},
{
"id": "locationName",
"type": "String"
},
{
"id": "parameterName",
"type": "String"
},
{
"id": "parameterValue",
"type": "String"
},
{
"id": "parameterUnit",
"type": "String"
},
{
"id": "startTime",
"type": "Timestamp"
},
{
"id": "endTime",
"type": "Timestamp"
}
],
"resource_id": "F-C0032-001"
},
"success": "true"
}
}
日誌:
[]