我正在尝试在C#中创建一个用于Dialogflow的webhook(在Azure上) . 每次我看到相同的例子,但我的DialogFlows一直在使用这个响应做出错误“
这是我做的:
-
创建了一个新的ASP.Net Web项目(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,因此有一个webhook URl . 现在,当我在对话框流中测试它时,响应是:
“Webhook调用失败 . 错误:无法解析webhook JSON响应:无法找到字段:消息中的内容google.cloud.dialogflow.v2.WebhookResponse . ”
哪些我不明白.....我在这里失踪了什么?
(这是响应的截图:)
1 回答
这个问题的解决方案是返回JsonResult而不是ContentResult .