是否可以通过 Google Assistant 测试我的 App Action 集成切片?

Is it possible to test my App Action integrated Slice from Google Assistant?

我已经在演示应用程序中实现了应用程序操作。它工作正常,我可以使用 Google Assistant 启动特定屏幕并查询

Order pizza from Avocado

于是开始整合Slice。使用 SliceViewer 测试切片时,它工作正常。

但是当我尝试从 Google 助手调用 Slice 时,它​​不起作用。

这是 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 助手中使用的查询来自 documentation

  • Ask Avocado to check my order
  • Check my order on Avocado

但都不起作用。

此外,在我将上述代码片段添加到 actions.xml 后,我无法再使用 "App Actions Test Tool" 插件。它说

Preview Creation Error Status Code: 400 Message: Precondition check failed. - Multiple URL templates for action 'actions.intent.GET_ORDER' have zero required parameters.

我使用的是插件版本 v1.1.0

所以我的问题是: 可以通过 Google 助手测试 Slice 吗?如果没有,什么时候可以开发测试?

Is testing Slice through Google Assistant available? If not, when will it be available to develop and test?

是的,developing/testing 使用 Studio 测试工具通过 Google 助手完成切片应该已经可以工作了。

您能否尝试删除 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。为什么?因为这成为文档 here:

中所述的 "fallback" 实现机制

You must provide one <fulfillment> without any required parameters as a fallback fulfillment.

因为 actions.intent.GET_ORDER 不接受任何参数,这意味着你只能有一个 <fulfillment> 块,它可以通过 Slice 或 Deep Link 实现,但不能两者。

我在使用 google 助手测试切片时遇到问题。我的助手在深度链接正常工作时卡在加载回复中。