![](/img/trans.png)
[英]How to find api-key and password for ibm-watson for Watson Assistant API working with nodejs
[英]Watson Discovery API - NodeJS not working as expected
在發現API節點片段之后,它似乎存在一個錯誤:
var DiscoveryV1 = require('watson-developer-cloud/discovery/v1');
var discovery = new DiscoveryV1({
username: '{username}',
password: '{password}',
version_date: '2016-12-01'
});
discovery.createCollection(('{environment_id}', '{collection_name}', '{description}' '{configuration_id}'), function(error, data) {
console.log(JSON.stringify(data, null, 2));
});
當我嘗試:
var params;
params = {description:'test',collection_name:'name test',environment_id:'xxxxxxx',
configuration_id:'xxxxxxx'};
discovery.createCollection(params, function(error, data) {
if(error){
console.log(error);
}
console.log(JSON.stringify(data, null, 2));
});
我收到錯誤:{錯誤:集合名稱無效或缺失,名稱是必需參數
它似乎是一個文檔或模塊錯誤。 有沒有其他人得到同樣的錯誤? 它使用Java Snippet並手動POST / curl工作正常
nodeJS的Discover API文檔中存在一些錯誤。 在每種情況下,(createCollection,query等),API都希望將JSON對象傳遞給API。 因此,createCollection的文檔聲明調用結構是:
discovery.createCollection(('{environment_id}', '{collection_name}',
'{description}' '{configuration_id}'), function(error, data) {
console.log(JSON.stringify(data, null, 2));
});
調用結構應該是:
discovery.createCollection({"environment_id": '{environment_id}', "collection_name": '{collection_name}', "description": '{description}', "configuration_id": '{configuration_id}'}, function(error, data) {
console.log(JSON.stringify(data, null, 2));
});
在你的代碼中,你只需要在json術語周圍加上引號,而不是這個var語句:
params = {description:'test',collection_name:'name test', environment_id:'xxxxxxx', configuration_id:'xxxxxxx'};
請改用:
params = {"description":'test',"collection_name":'name test', "environment_id":'xxxxxxx', "configuration_id":'xxxxxxx'};
另外,我要小心一個帶空格的集合名稱....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.