Выполнение диалогового потока несовместимо с ответом REST функции Azure. - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь получить ответ о выполнении из Dialogflow, используя функции Java Azure, всякий раз, когда остальной клиент Dialogflow вызывает функцию Azure, он выдает ошибку-

Не удалось вызвать Webhook. Ошибка: не удалось выполнить синтаксический анализ ответа JSON webhook: ожидается объект сообщения, но получено: "䌀 ─㈀㈀ 昀 甀 氀 昀 椀 氀 氀 洀 攀 渀 琀 䴀 攀 猀 猀 愀 最 攀 猀 ─㈀㈀─㌀ 䄀 ⬀─ 㔀 䈀 ─ 㔀 䐀 ─㈀ 䌀 ─㈀㈀ 猀 漀 甀 爀 挀 攀 ─㈀ ㈀─㌀ 䄀 ⬀ 渀 甀 氀 氀 ─㈀ 䌀 ─㈀㈀ 瀀 愀 礀 氀 漀 愀 搀 ─㈀㈀─㌀ 䄀 ⬀─ 㜀 䈀 ─㈀㈀ 最 漀 漀 最 氀 攀 ─㈀㈀─㌀ 䄀 ⬀─ 㜀䈀 ─㈀㈀ 攀 砀 瀀 攀 挀 琀 唀 猀 攀 爀 刀 攀 猀 瀀 漀 渀 猀 攀 ─㈀㈀─㌀ 䄀 ⬀ 昀 愀 氀 猀 攀 ─㈀ 䌀 ─㈀㈀ 甀 猀 攀 爀 匀

Мне удалось найти несколько ссылок, чтобы найти решение, но ничего не помогло, вот ссылки, которые я нашел-

  1. Не удалось вызвать Webhook. Ошибка: не удалось проанализировать ответ JSON webhook: ожидается объект сообщения, но получено: [китайские буквы]
  2. https://github.com/dialogflow/dialogflow-fulfillment-nodejs/issues/197
  3. https://productforums.google.com/forum/#!msg/dialogflow/QVmOFwXXuOU/CAEv1MgQAgAJ;context-place=forum/dialogflow
  4. Функция Azure отправляет фрагментированный ответ, а Dialogflow не обрабатывает его
  5. https://github.com/googleapis/google-cloud-dotnet/issues/2258
  6. Ответ Webhook Dialogflow c # выдает ошибку при вызове

В приведенных выше двух последних ссылках есть решение в dotnet, но не в Java.

Я также пытался вернуть String и Json Object, но ничего не получилось.

Ниже приведен Java-код функции Azure, который я использовал -

 @FunctionName("TriggerStringPost")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req", 
              methods = {HttpMethod.POST}, 
              authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {

    // Check request body
    if (!request.getBody().isPresent()) {
        return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                      .body("Document not found.")
                      .build();
    } 
    else {
        // return JSON from to the client
        // Generate document
        final String body = request.getBody().get();
        final String jsonDocument = "{\"id\":\"123456\", " + 
                                     "\"description\": \"" + body + "\"}";
        return request.createResponseBuilder(HttpStatus.OK)
                      .header("Content-Type", "application/json")
                      .body(jsonDocument)
                      .build();
    }
}

Пожалуйста, помогите мне найти решение для этого, спасибо.

...