【发布时间】:2018-05-08 20:55:06
【问题描述】:
我正在尝试使用以下代码返回简单的文本响应并在 Google 助理应用中显示一张基本卡片:
public GoogleCloudDialogflowV2WebhookResponse Search(GoogleCloudDialogflowV2WebhookRequest request)
{
GoogleCloudDialogflowV2WebhookResponse whr = new GoogleCloudDialogflowV2WebhookResponse();
whr.FulfillmentMessages = new List<GoogleCloudDialogflowV2IntentMessage>();
whr.FulfillmentMessages.Add(new GoogleCloudDialogflowV2IntentMessage()
{
Platform = "ACTIONS_ON_GOOGLE",
SimpleResponses = new GoogleCloudDialogflowV2IntentMessageSimpleResponses()
{
SimpleResponses = new List<GoogleCloudDialogflowV2IntentMessageSimpleResponse>()
{
new GoogleCloudDialogflowV2IntentMessageSimpleResponse()
{
DisplayText = "sample text",
Ssml = "<speak>sample text</speak>"
}
}
},
BasicCard = new GoogleCloudDialogflowV2IntentMessageBasicCard()
{
Title = "sample title",
Subtitle = "sample subtitle",
FormattedText = "sample formatted text",
Image = new GoogleCloudDialogflowV2IntentMessageImage()
{
ImageUri = "https://assistant.google.com/static/images/molecule/Molecule-Formation-stop.png",
AccessibilityText = "sample image"
}
}
});
return whr;
}
从 Google Dialogflow 界面调用 webhook 端点时出现以下错误:
webhookStatus": {
"code": 3,
"message": "Webhook call failed. Error: Failed to parse webhook JSON response: Cannot find field: ETag in message google.cloud.dialogflow.v2beta1.Intent.Message.Image." }
我找不到任何有关 ETag 问题的信息。我正在使用标准的 Google.Apis.Dialogflow.v2 NuGet 包和 V2 API Dialogflow 代理。
如果我不使用 GoogleCloudDialogflowV2WebhookResponse 并使用自定义类,那么当序列化为 JSON 时,无需基本卡即可正常工作。
{ "fulfillmentText": "test from API", "fulfillmentMessages": [ { "platform": "ACTIONS_ON_GOOGLE", "simpleResponses": { "simpleResponses": [ { "displayText": "test", "ssml": "<speak>test</speak>"}],}}],}
我更喜欢使用 GoogleCloudDialogflowV2WebhookResponse。
【问题讨论】:
-
基本卡的JSON序列化是什么?
-
我的意思是我自己的实现(没有基本的卡属性,只有fulfillmentMessages)将响应发送回webhook。公共类 GoogleHomeResponse { 公共字符串履行文本 { 获取;放; } public List
放; } } -
正确,但似乎错误在于您的 webhook 响应。如果您可以发布它的样子,它可能有助于调试您的问题。
-
我也遇到了这个问题。在 DialogFlow 提交支持请求,在 github.com/google/google-api-dotnet-client/issues/1234 提交问题。我希望这两个中的一个会提供一些帮助。
标签: c# asp.net-web-api google-assistant-sdk google-home api-ai