Можно ли протестировать встроенный слайс приложения App Action из Google Assistant? - PullRequest
2 голосов
/ 12 июня 2019

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

Заказать пиццу из Avocado

Так что я начал интегрировать 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, взяты из документации

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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

Тестирует 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, но не оба.

0 голосов
/ 03 июля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...