2

我正在尝试使用 Dialogflow V2 API 添加两个数字,为​​此我设置了一个具有 HTTPS 访问权限的 Web 服务器来完成请求。在 Dialogflow 控制台的诊断信息屏幕中,我可以看到来自远程服务器的履行响应:

{
  "fulfillmentText": "the sum of 5 and 9 is 14",
  "fulfillmentMessages": [
    {
      "text": {
        "text": [
          "the sum of 5 and 9 is 14"
        ]
      }
    }
  ],
  "source": "-------.com",
  "payload": {
    "google": {
      "expectUserResponse": 1,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "the sum of 5 and 9 is 14"
            }
          }
        ]
      }
    },
    "facebook": {
      "text": "the sum of 5 and 9 is 14"
    },
    "slack": {
      "text": "the sum of 5 and 9 is 14"
    }
  },
  "outputContexts": [
    {
      "name": "-----892446d1-----",
      "lifespanCount": 1,
      "parameters": {
        "number": 5,
        "number1": 9
      }
    }
  ]
}

这已改编自文档中给出的示例:https ://dialogflow.com/docs/intro/fulfillment但在原始 API 响应中我看到:

"webhookStatus": {
    "code": 3,
    "message": "Webhook call failed. Error: Webhook response was empty."
  }

显然响应不是空的,因为它可以在诊断信息中看到。有没有人知道是什么原因造成的?

谢谢

4

1 回答 1

0

我们可以在google.rpc 包错误代码中找到代码的定义,

“代码”:3

表示“INVALID_ARGUMENT”

// 客户端指定了一个无效的参数。请注意,这与
//不同FAILED_PRECONDITIONINVALID_ARGUMENT指示参数 // 无论系统状态如何都有问题 // (例如,格式错误的文件名)。

例如,根据“outputContexts”中的请求格式“parameters”字段应具有格式“param”:“param value”,在您的请求中它看起来像“param”:param value。

请检查您请求中的所有参数。

于 2019-10-18T09:28:09.653 回答