我正在尝试返回简单的文字回复,并使用以下代码在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 endpoints 时出现以下错误:
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 .
1 回答
根据https://github.com/google/google-api-dotnet-client/issues/1234,使用https://www.nuget.org/packages/Google.Cloud.Dialogflow.V2/1.0.0-beta01而不是https://www.nuget.org/packages/Google.Apis.Dialogflow.v2/ .
意识到Gooogle.Cloud软件包仍处于预发布状态,因此您必须在安装时指定版本,或者如果您在Visual Studio中使用NuGet Package Manager UI,请单击“include prerelease”复选框 .
我还没有尝试过,所以你的里程可能会有所不同 . 一旦我尝试过,我会更新 .
Update :Google.Cloud库确实按预期工作 .