Watson助手错误“ Http响应代码为[401]”

时间:2019-05-07 14:20:50

标签: ibm-cloud ibm-watson watson-assistant ibm-cloud-functions

我在IBM中创建了一个非常简单的云函数,我尝试通过Watson Assistant进行调用。当我调用它时,出现错误“直接CloudFunctions调用失败。Http响应代码为[401]”。

下面是我正在使用的代码。从用户那里获取“产品名”,并将其发送到函数以获取答案。当我调用它时,该函数运行良好。我从https://cloud.ibm.com/openwhisk/learn/api-key获得了ID和密码。

{
  "context": {

    "credentials": {
      "user": "userID",
      "password": "password"
    }
  },
  "output": {
    "text": {
      "values": [
        "$answer"
      ]
    }
  },
  "actions": [
    {
      "name": "arllambi%2540gmail.com_Only/Watson/MovieBot",
      "type": "cloud_function",
      "parameters": {
        "prodname": "$prodname"
      },
      "result_variable": "answer",
      "credentials": "$credentials"
    }
  ]
}

凭据是否可能存在问题?

在此先感谢您的帮助。

******重新编辑******

如data_henrik所建议,我提供了更多信息。我正在调用的函数如下,一个非常简单的echo函数:

function main(msg){
return {answer: "You said " +msg.prodname};
}

我将cloud_function更改为web_action,通过邮递员,web_action可以正常运行:

{
  "output": {
    "text": {
      "values": [
        "$answer"
      ]
    }
  },
  "actions": [
    {
      "name": "arllambi@gmail.com_Only/Watson/MovieBot.json",
      "type": "web_action",
      "parameters": {
        "prodname": "<?input.text?>"
      },
      "result_variable": "context.answer"
    }
  ]
}

我现在收到的消息是“直接CloudFunctions调用未成功。Http响应代码为[404]”。助手还回答“带有{“ cloud_functions_call_error”:“所请求的资源不存在。”}

Adrià

2 个答案:

答案 0 :(得分:0)

我的猜测是您的动作名称中的org部分是错误的。尝试用“%40”替换任何“ @”。否则,沃森会将其解释为其他内容。接下来,在更新对话框节点之后,请等待几秒钟,以使更改生效。

我刚刚尝试了一些部署的Web操作,可能会导致401和404。

"name": "arllambi%40gmail.com_Only/Watson/MovieBot.json"

答案 1 :(得分:0)

您好@data_henrik,感谢您的帮助。我确实看到了@,并在编辑后的代码中对其进行了更正,但出现了同样的问题。但是我想通了:助手被部署在华盛顿...我将其移至伦敦,现在可以使用了。再次感谢您的帮助,也很抱歉我的新手错误...