Dialhoflow Webhook Response c # выдает ошибку при вызове - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать webhook для Dialogflow в C # (в Azure).Каждый раз, когда я вижу один и тот же пример, но мой DialogFlows продолжает получать сообщение об ошибке с этим ответом "

Вот что я сделал:

  • Создан новый веб-проект ASP.Net (WebAPI)
  • установлен NuGet Google.Cloud.DialogFlow V2 (v1.0.0.beta02)
  • обновлен System.Net.Http до 4.3.3

Создан новый контроллер

        [System.Web.Http.HttpPost]
    public dynamic DialogAction([FromBody] WebhookRequest dialogflowRequest)
    {
        var intentName = dialogflowRequest.QueryResult.Intent.DisplayName;
        var actualQuestion = dialogflowRequest.QueryResult.QueryText;
        var testAnswer = $"Dialogflow Request for intent {intentName} and question {actualQuestion}";
        var parameters = dialogflowRequest.QueryResult.Parameters;
        var dialogflowResponse = new WebhookResponse
        {
            FulfillmentText = testAnswer,
            FulfillmentMessages =
            { new Intent.Types.Message
                { SimpleResponses = new Intent.Types.Message.Types.SimpleResponses
                    { SimpleResponses_ =
                        { new Intent.Types.Message.Types.SimpleResponse
                            {
                                DisplayText = testAnswer,
                                TextToSpeech = testAnswer,
                            }
                        }
                    }
                }
            }                
        };
        var jsonResponse = dialogflowResponse.ToString();
        return new ContentResult
        {
            Content = jsonResponse,
            ContentType = "application/json"                
        };
  • Опубликовал приложение в Azure, чтобы был URl для веб-крюка. Теперь, когда я тестирую его в диалоговом потоке, ответом является:

"Сбой вызова Webhook.Ошибка: не удалось проанализировать ответ JSON webhook: не удается найти поле: содержание в сообщении google.cloud.dialogflow.v2.WebhookResponse. "

Что я не понимаю ..... чего мне здесь не хватает?

(вот скриншот ответа :) Screenhot

1 Ответ

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

Решение этой проблемы - вернуть JsonResult вместо ContentResult.

   [System.Web.Http.HttpPost]
public JsonResult DialogAction([FromBody] WebhookRequest dialogflowRequest)
{
    var intentName = dialogflowRequest.QueryResult.Intent.DisplayName;
    var actualQuestion = dialogflowRequest.QueryResult.QueryText;
    var testAnswer = $"Dialogflow Request for intent {intentName} and question {actualQuestion}";
    var parameters = dialogflowRequest.QueryResult.Parameters;
    var dialogflowResponse = new WebhookResponse
    {
        FulfillmentText = testAnswer,
        FulfillmentMessages =
        { new Intent.Types.Message
            { SimpleResponses = new Intent.Types.Message.Types.SimpleResponses
                { SimpleResponses_ =
                    { new Intent.Types.Message.Types.SimpleResponse
                        {
                            DisplayText = testAnswer,
                            TextToSpeech = testAnswer,
                        }
                    }
                }
            }
        }                
    };
    var jsonResponse = dialogflowResponse.ToString();
    return Json(jsonResponse);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...