google操作:具有丰富响应的对话内容顺序

时间:2019-02-08 13:33:09

标签: actions-on-google

我能够使用SimpleResponseBasicCardList和其他此类丰富的回复。可以支持以下内容吗?

a。 仅语音+基本卡+ simpleResponse

如果我生成如下响应:

conv.ask('<speak> ...</speak>');
conv.ask(new BasicCard(
 );
conv.ask(new SimpleResponse({
   speech: ...
   text: ...
});

我注意到在显示设备(电话)上,speak的内容也显示为文本。有办法避免吗?

接下来,“简单响应”的文本出现在卡之前。有没有办法确保它在卡后出现。

当前,对于第一个问题,我被迫使用带有短文本的SimpleResponse(例如Hi);对于第二个问题,我将文本作为名片文本并删除了SimpleResponse。

但是想知道是否有出路?谢谢

2 个答案:

答案 0 :(得分:2)

首先;如reference docs for the node.js library中所述,响应中的第一项应该始终是SimpleResponse。无论您是定义的短文本还是其speech属性的副本,SimpleResponse始终显示文本。但是我喜欢您输入简短的文字,以避免向用户显示您的操作逐字记录。

第二;根据我的经验,在模拟器上未正确显示响应顺序。我已经在虚拟的“动作”中测试了您的情况,而模拟器在卡片之前显示了“最终回应”(这是我的代码中的最后一个),而我的手机却以正确的顺序显示了它们。

模拟器:

Simulator Screenshot

智能手机: Smartphone Screenshot

在设备上进行测试,看看错误是否仍然存在。我目前没有附近的Google Home,但也可以对其进行测试。

答案 1 :(得分:0)

第一个问题:如果要使用ssml标记,则必须使用SimpleResponse,这就是它的本意。换句话说,您的第一个问题不是问题:)