我正在尝试利用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'
答案 0 :(得分:0)
您正在使用的库主要设计为client library,可让您将文本发送到Dialogflow并让其确定该文本的Intent和参数(可能还包括响应)。
听起来您正在尝试在另一端使用它-在一个Webhook中处理fulfillment。它不是为此而设计的。该类是从ProtoBuf definition自动生成的,它不会序列化为JSON,也不能以这种方式表示事物。
您将需要自己为响应构建JSON。