Почему конструктор WebhookResponse создает неправильный ключ в json? - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь использовать com.google.cloud.dialogflow.v2.WebhookResponse для взаимодействия с моим агентом диалога. Но у меня возникают проблемы с ответом агенту во время выполнения.

Созданный ответ не соответствует требуемым спецификациям, т. Е. Агент ожидает, что json будет fulfillmentText: "something", но сборщик создает его в формате fulfillment_text. Недостаточно документации о том, как правильно использовать API-клиент

У кого-нибудь есть опыт в java / kotlin?

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

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

Выход:

assignment_text: "Привет"

{ "bitField0 _": 0, "fulfillmentText _": "Здравствуйте", "fulfillmentMessages _":
[], "Источник _": "", "outputContexts _": [], "memoizedIsInitialized": 1, "unknownFields": { "поля": {}}, "memoizedSize": - 1, "memoizedHashCode": 0}

Я использую 'com.google.cloud:google-cloud-dialogflow:0.75.1-alpha' из https://cloud.google.com/dialogflow-enterprise/docs/reference/libraries/java

1 Ответ

0 голосов
/ 11 января 2019

Используемая вами библиотека в основном разработана как клиентская библиотека , позволяющая отправлять текст в Dialogflow и заставлять его определять намерение и параметры (и, возможно, ответ) из этого текста.

Похоже, вы пытаетесь использовать это на другом конце - в веб-крюке для обработки выполнения . Это просто не для этого. Класс был автоматически сгенерирован из определения ProtoBuf , которое не сериализуется в JSON и не предназначено для представления вещей таким образом.

Вам нужно будет самостоятельно построить JSON для ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...