首页 文章

Google Assistant Dialogflow API V2 webhook ETag错误

提问于
浏览
1

我正在尝试返回简单的文字回复,并使用以下代码在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 回答

相关问题