Я хочу создать чат-бота с 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.
).