Почему `actions.intent.TRANSACTION_DECISION` не запускается? - PullRequest
0 голосов
/ 17 мая 2018

Я хочу создать чат-бота с Dialogflow и Google Assistant вместе с API транзакций Google, чтобы пользователь мог заказать некоторые элементы.На данный момент мой агент содержит следующие четыре намерения:

  • Default Welcome Intent (текстовый ответ: Здравствуйте, вы хотите купить шоколадную коробку?)
  • Default Fallback Intent
  • Int3 (обучающая фраза: Да, я хочу, выполнение: включен веб-крюк)
  • Int4 (событие: actions_intent_TRANSACTION_DECISION, выполнение: включен веб-крюк)

Я использую Dialogflow Json вместо Node.js для соединения моего агента с API транзакций.Я хочу создать корзину и заказ для пользователя, наконец, убедившись, что пользователь удовлетворяет требованиям транзакции, используя действие actions.intent.TRANSACTION_DECISION действий Google.По этой причине, следуя документам Google, при срабатывании Int3 я использую веб-крючок, который подключает мой бэкэнд Google Assistant, который отправляет обратно следующий json (для запуска actions.intent.TRANSACTION_DECISION):

{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "isSsml": false,
      "noInputPrompts": [],
      "systemIntent": {
        "data": {
          "@type": "type.googleapis.com/google.actions.v2.TransactionDecisionValueSpec",
          "orderOptions": {
            "requestDeliveryAddress": false
          },
          "paymentOptions": {
            "actionProvidedOptions": {
              "displayName": "VISA-1234",
              "paymentType": "PAYMENT_CARD"
            }
          },
          "proposedOrder": {
            "cart": {
              "lineItems": [
                {
                  "id": "My Memoirs",
                  "name": "memoirs_1",
                  "price": {
                    "amount": {
                      "currencyCode": "USD",
                      "nanos": 990000000,
                      "units": 3
                    },
                    "type": "ACTUAL"
                  },
                  "quantity": 1,
                  "subLines": [
                    {
                      "note": "Note from the author"
                    }
                  ],
                  "type": "REGULAR"
                },
                {
                  "id": "Memoirs of a person",
                  "name": "memoirs_2",
                  "price": {
                    "amount": {
                      "currencyCode": "USD",
                      "nanos": 990000000,
                      "units": 5
                    },
                    "type": "ACTUAL"
                  },
                  "quantity": 1,
                  "subLines": [
                    {
                      "note": "Special introduction by author"
                    }
                  ],
                  "type": "REGULAR"
                },
                {
                  "id": "Their memoirs",
                  "name": "memoirs_3",
                  "price": {
                    "amount": {
                      "currencyCode": "USD",
                      "nanos": 750000000,
                      "units": 15
                    },
                    "type": "ACTUAL"
                  },
                  "quantity": 1,
                  "type": "REGULAR"
                },
                {
                  "id": "Our memoirs",
                  "name": "memoirs_4",
                  "price": {
                    "amount": {
                      "currencyCode": "USD",
                      "nanos": 490000000,
                      "units": 6
                    },
                    "type": "ACTUAL"
                  },
                  "quantity": 1,
                  "type": "REGULAR"
                }
              ],
              "merchant": {
                "id": "book_store_1",
                "name": "Book Store"
              },
              "notes": "The Memoir collection",
              "otherItems": []
            },
            "id": "<UNIQUE_ORDER_ID>",
            "otherItems": [
              {
                "id": "Subtotal",
                "name": "subtotal",
                "price": {
                  "amount": {
                    "currencyCode": "USD",
                    "nanos": 220000000,
                    "units": 32
                  },
                  "type": "ESTIMATE"
                },
                "type": "SUBTOTAL"
              },
              {
                "id": "Tax",
                "name": "tax",
                "price": {
                  "amount": {
                    "currencyCode": "USD",
                    "nanos": 780000000,
                    "units": 2
                  },
                  "type": "ESTIMATE"
                },
                "type": "TAX"
              }
            ],
            "totalPrice": {
              "amount": {
                "currencyCode": "USD",
                "nanos": 0,
                "units": 35
              },
              "type": "ESTIMATE"
            }
          }
        },
        "intent": "actions.intent.TRANSACTION_DECISION"
      }
    }
  }
}

Обратите внимание, что я по сути копирую и вставляю jsons из документов Google.

Однако Int4 не запускается, что означает, что actions.intent.TRANSACTION_DECISION также не запускается.

Я только получаю в GoogleПомощник (когда запускается Int3 и вышеупомянутый json отправляется как ответ от моего бэкэнда) следующее сообщение / ошибка:

Sorry, something went wrong. Please try again later.

Поэтому я не могу понять, что не так в моем jsonи почему actions.intent.TRANSACTION_DECISION не запускается.

Почему actions.intent.TRANSACTION_DECISION не запускается?Есть ли какая-либо необнаруженная проблема с json выше?

Я не знаю, связана ли моя проблема с этим: Действия в Google возвращаются в симуляторе "Приносим извинения, но что-то пошло не так. Пожалуйста, попробуйте еще раз. ".Тем не менее, я проверил все возможные решения по этой ссылке, и пока мне ничего не помогло.Кроме того, имейте в виду, что я уже запустил все другие встроенные функции API Google Транзакций (actions.intent.TRANSACTION_REQUIREMENTS_CHECK, actions.intent.DELIVERY_ADDRESS, actions.intent.SIGN_IN), и все они отлично работают с моим агентом / приложением.По какой-то причине только actions.intent.TRANSACTION_DECISION возвращает мне эту ошибку (Sorry, something went wrong. Please try again later.).

1 Ответ

0 голосов
/ 17 мая 2018

Наконец я решил это.В некотором смысле это было связано с последним абзацем в моем посте выше.Под этим я подразумеваю, что это связано с некоторыми настройками / разрешениями, необходимыми для тестирования этого приложения, а не с моим json и т. Д.

Однако я не знаю точно, почему это происходило только с actions.intent.TRANSACTION_DECISION и не совсем с остальными встроенными намерениями API транзакций Google (actions.intent.TRANSACTION_REQUIREMENTS_CHECK, actions.intent.DELIVERY_ADDRESS, actions.intent.SIGN_IN).

В частности, в Google Actions после того, как я выбрал свой проект ивойдя в свою учетную запись Google, я заполнил все необходимые данные в следующем месте:

left sidebar -> DEPLOY -> Directory information -> (Details, Image, Contact Details, Privacy and consent, Additional Information)

После того, как я завершил и сохранил, этот actions.intent.TRANSACTION_DECISION был запущен, как ожидалось, и я получил ожидаемый "предварительный просмотр корзины"в Google Assistant (на мобильном телефоне).

...