Действия в симуляторе Google, не использующие SDK версии 2

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

  • действия.намерение.MAIN
  • действия.намерение.ТЕКСТ
  • действия.намерение.ОПЦИЯ

Я начал с первых двух, и, проксируя это к моему собственному НЛП/сбору ответов, я могу заставить работать основные функции. Теперь я пытаюсь перейти к отображению списков пользователей с помощью askWithList. Мой пакет действий определяется следующим образом:

{
    "actions": [
        {
            "name": "MAIN",
            "fulfillment": {
                "conversationName": "JamesTest"
            },
            "intent": {
                "name": "actions.intent.MAIN"
            }
        },
        {
            "name": "TEXT",
            "fulfillment": {
                "conversationName": "JamesTest"
            },
            "intent": {
                "name": "actions.intent.TEXT"
            }
        },
        {
            "name": "OPTION",
            "fulfillment": {
                "conversationName": "JamesTest"
            },
            "intent": {
                "name": "actions.intent.OPTION"
            }
        }
    ],
    "conversations": {
        "JamesTest": {
            "name": "JamesTest",
            "url": "myngrok"
        }
    }
}

Когда я пытаюсь ответить askWithList и тестировать в симуляторе, я получаю следующую ошибку:

{
  "name": "ResponseValidation",
  "subDebugEntry": [{
    "name": "MalformedResponse",
    "debugInfo": "expected_inputs[0].possible_intents[0]: intent 'actions.intent.OPTION' is only supported for version 2 and above."
  }]
}

Насколько я понял из документации, все проекты, созданные после 17 мая 2017 года, по умолчанию будут использовать SDK версии 2. Я также не могу найти никаких указаний на то, что я мог бы явно объявить, какую версию я хотел бы использовать в определении пакета действий.

Кто-нибудь сталкивался с этим? Это просто ограничение симулятора, или я упускаю что-то очевидное?


person jamesism    schedule 02.08.2017    source источник


Ответы (2)


Похоже, что в блоке conversations есть недокументированное (по крайней мере, я не могу его найти) поле с именем fulfillmentApiVersion, которое должно быть установлено в 2 в вашем пакете действий. Ответ получен отсюда: askWithList on Actions on Google

person jamesism    schedule 02.08.2017

Вы упускаете что-то ничуть не очевидное. {: Документация для этого несколько скрыта, а gactions Команда по-прежнему создает файл json версии 1.

Пакет действий должен явно указывать версию, которую он использует, в противном случае будет предполагаться, что он использует версию 1.

Чтобы указать версию 2, ваш раздел «Беседы» должен выглядеть примерно так:

"conversations": {
    "JamesTest": {
        "name": "JamesTest",
        "url": "myngrok",
        "fulfillmentApiVersion": 2
    }
}

Обратите внимание на параметр «fulfillmentApiVersion».

person Prisoner    schedule 02.08.2017