Можно ли протестировать встроенный слайс приложения 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 работает нормально.