Как отобразить карточку таблицы из Dialogflow Webhook в Google Assistant

Я установил веб-API ASP.NET MVC 4 для обработки выполнения диалогового процесса. Моя цель - интегрироваться с Google Assistant и отображать карточку стола в качестве ответа. Тестирую через симулятор консоли Google Actions.

Я добавил детали карточки стола в поле GoogleCloudDialogflowV2IntentMessage Payload, основываясь на том, что я здесь обнаружил:

Как добавить карточку таблицы в выполнение диалогового потока?

Ответ выполнения от моего API Webhook в конечном итоге выглядит примерно так:

{
  "followupEventInput": {
    "languageCode": null,
    "name": null,
    "parameters": null,
    "ETag": null
  },
  "fulfillmentMessages": [
    {
      "basicCard": null,
      "card": null,
      "carouselSelect": null,
      "image": null,
      "linkOutSuggestion": null,
      "listSelect": null,
      "payload": {
        "google": {
          "expectUserResponse": false,
          "richResponse": {
            "items": [
              {
                "simpleResponse": {
                  "textToSpeech": "Simple Response TEST",
                  "ssml": "Simple Response TEST SSML",
                  "displayText": "Simple Response TEST DISPLAY"
                }
              },
              {
                "tableCard": {
                  "title": "Title",
                  "subtitle": "Subtitle",
                  "image": {
                    "url": "https://www.google.org/static/logo_googledotorg.svg",
                    "accessibilityText": "Image Accessibility Text TEST"
                  },
                  "columnProperties": [
                    {
                      "header": "BanksID",
                      "horizontalAlignment": "LEADING"
                    },
                    {
                      "header": "Name",
                      "horizontalAlignment": "LEADING"
                    }
                  ],
                  "rows": [
                    {
                      "cells": [
                        {
                          "text": "3"
                        },
                        {
                          "text": "Bank 1 TEST"
                        }
                      ],
                      "dividerAfter": false
                    }
                  ],
                  "buttons": [
                    {
                      "title": "Weblink Title",
                      "openUrlAction": {
                        "url": "https://www.google.org",
                        "urlTypeHint": "URL_TYPE_HINT_UNSPECIFIED"
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      },
      "platform": null,
      "quickReplies": null,
      "simpleResponses": {
        "simpleResponses": [
          {
            "displayText": "Simple Response DISPLAY TEST",
            "ssml": "Simple Response TEST SSML",
            "textToSpeech": "Simple Response TEST",
            "ETag": null
          }
        ],
        "ETag": null
      },
      "suggestions": null,
      "text": null,
      "ETag": null
    }
  ],
  "fulfillmentText": "TEST successful.",
  "outputContexts": [
    {
      "lifespanCount": 5,
      "name": "banks",
      "parameters": {
        "TForView": "rra",
        "DBVerb": "rra",
        "TForView.original": "",
        "DBVerb.original": ""
      },
      "ETag": null
    }
  ],
  "payload": null,
  "source": null,
  "ETag": null
}

Проблема в том, что я не вижу карточку стола в симуляторе. Формат моего ответа JSON, вероятно, неправильный, поэтому Google Assistant не может правильно его интерпретировать, но я не знаю, как его изменить. Я не знаю, какой формат правильный. Или, возможно, я упускаю что-то еще.

Как я могу отобразить карточку стола в Google Assistant из ответа Webhook?

Любая помощь / другие идеи приветствуются.


person Shiasu-sama    schedule 02.09.2019    source источник


Ответы (1)


Посмотрев на Консоль Dialogflow> ДИАГНОСТИЧЕСКАЯ ИНФОРМАЦИЯ> СОСТОЯНИЕ ВЫПОЛНЕНИЯ.

Я обнаружил, что в GoogleCloudDialogflowV2IntentMessage я устанавливаю и поле SimpleResponses, и поле Payload; и Google Assistant это не совсем понравилось. Итак, я установил для поля SimpleResponses значение null, а затем получил желаемый отклик дисплея в симуляторе действий Google.

SimpleResponses уже добавлен в поле Payload, и у Google Assistant не было проблем с этим, просто были установлены и Payload, и SimpleResponses.

person Shiasu-sama    schedule 02.09.2019