Можно ли протестировать встроенный слайс приложения App Action из Google Assistant?

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

Заказать пиццу из авокадо

Итак, я начал интегрировать Slice. При тестировании Slice с использованием SliceViewer все работает нормально.

Но когда я пытаюсь вызвать Slice из Google Assistant, это не работает.

Вот фрагмент кода в файле actions.xml.

<action intentName="actions.intent.GET_ORDER">
    <fulfillment
        fulfillmentMode="actions.fulfillment.SLICE"
        urlTemplate="content://my.food.service/status" />

    <fulfillment
        fulfillmentMode="actions.fulfillment.DEEPLINK"
        urlTemplate="my://food/orders" />
</action>

Запросы, которые я использовал в Google Assistant, взяты из документации

  • Попросите авокадо проверить мой заказ
  • Проверьте мой заказ на авокадо

Но ни один не работает.

Кроме того, после добавления приведенного выше фрагмента в файл actions.xml я больше не могу использовать плагин "App Actions Test Tool". Это говорит

Код состояния ошибки создания предварительного просмотра: 400 Сообщение: проверка предварительного условия не выполнена. - Несколько шаблонов URL для действия 'actions.intent.GET_ORDER' имеют нулевые обязательные параметры.

Я использую плагин версии v1.1.0

Итак, мой вопрос: доступно ли тестирование Slice через Google Assistant? Если нет, когда он будет доступен для разработки и тестирования?

2 ответа

Решение

Доступно ли тестирование Slice через Google Assistant? Если нет, когда он будет доступен для разработки и тестирования?

Да, разработка / тестирование выполнения слайсов с помощью Google Assistant с использованием Studio Test Tool уже должно работать.

Можете ли вы попробовать удалить DEEPLINK выполнение блока и посмотреть, работает ли это? Так что ваши actions.xml будет выглядеть так:

<action intentName="actions.intent.GET_ORDER">
    <fulfillment
        fulfillmentMode="actions.fulfillment.SLICE"
        urlTemplate="content://my.food.service/status" />    
</action>

Пояснение: конкретный <action> должен иметь один и только один <fulfillment> блок с нулем <parameter> блоки, которые имеют required=true, Почему? Потому что это становится "резервным" механизмом выполнения, как отмечено в документации здесь:

Вы должны предоставить один <fulfillment> без каких-либо обязательных параметров в качестве резервного исполнения.

Как actions.intent.GET_ORDER не принимает никаких параметров, это означает, что вы можете иметь только один <fulfillment> блок, который может быть выполнен с помощью Slice или Deep Link, но не обоими способами.

У меня есть проблемы тестовых срезов с помощником Google. Мой помощник застрял при загрузке ответа, в то время как deeplink работает нормально.

Другие вопросы по тегам