为什么WebhookResponse构建器在json中创建错误的密钥?

时间:2019-01-10 03:47:55

标签: java kotlin dialogflow

我正在尝试利用com.google.cloud.dialogflow.v2.WebhookResponse与我的dialogflow代理进行交互。但是我在履行过程中无法回复代理。

创建的响应未遵循所需的规范,即代理期望json为fulfillmentText: "something",但构建器以fulfillment_text的格式构建。没有足够的文档说明如何正确使用API​​客户端

任何人都有使用Java / kotlin进行此操作的经验吗?

val response = WebhookResponse
                .newBuilder()
                .setFulfillmentText("Hello")
                .build()

println(response)
println(Gson().toJson(response)) 

输出:

  

fulfillment_text:“你好”

     

{“ bitField0 _”:0,“ fulfillmentText_”:“您好”,“ fulfillmentMessages_”:
  [],“ source _”:“”,“ outputContexts _”:[],“ memoizedIsInitialized”:1,“ unknownFields”:{“ fields”:{}},“ memoizedSize”:-1,“ memoizedHashCode”:0} < / p>

我正在使用https://cloud.google.com/dialogflow-enterprise/docs/reference/libraries/java中的'com.google.cloud:google-cloud-dialogflow:0.75.1-alpha'

1 个答案:

答案 0 :(得分:0)

您正在使用的库主要设计为client library,可让您将文本发送到Dialogflow并让其确定该文本的Intent和参数(可能还包括响应)。

听起来您正在尝试在另一端使用它-在一个Webhook中处理fulfillment。它不是为此而设计的。该类是从ProtoBuf definition自动生成的,它不会序列化为JSON,也不能以这种方式表示事物。

您将需要自己为响应构建JSON。