多重支持:askForNewSurface

Multisupport : askForNewSurface

有没有人能让 askForNewSurface() 正常工作? 它应该询问用户 s/he 是否想在另一个支持上继续对话,但它似乎实际上只是默默地失败了,至少对我来说是这样。

我尝试在法语 Google 主页上使用法语助手尝试链接到法语帐户,该帐户也在法语 android phone 上配置,但没有用。

我试着把所有的东西都换成英语,结果更好了一点,因为 "hasAvailableSurfaceCapabilities" returns 是真的(如果我的记忆力不是太差,法语就不是这样了..) , 但它只是在 askForNewSurface() 调用时停止。

我根据他们的文档通过 google SDK 上的操作制作了助手。

代码如下:

if (assistant.hasSurfaceCapability(assistant.SurfaceCapabilities.SCREEN_OUTPUT)) {
    if (!assistant.isNewSurface()) {
        assistant.tell("I found no screen.");
    } else {
        assistant.tell("You seem to have a screen available !");
    }
} else if (assistant.hasAvailableSurfaceCapabilities(assistant.SurfaceCapabilities.SCREEN_OUTPUT)) {
    try {
        let res = assistant.askForNewSurface("To display additional content", "Do you want proceed on this scree ?", [assistant.SurfaceCapabilities.SCREEN_OUTPUT]);
        console.log(res);
    }catch(e) {
        console.error("ERROR askForNewSurface()");
        console.log(e);
    }
} else {
    assistant.tell("Sorry i found no screen");
}

当然 "console.error("错误 askForNewSurface()");"永远不会被解雇。一切似乎都很好,但没有任何反应。

有什么想法吗?

祝你有美好的一天:)

有效!

我正在测试的项目出现了非常奇怪的行为,所以我从头开始了一个新项目。

这是一个在 google 动作开始时使用 GAction CLI 制作的项目。我后来将其切换为 DialogFlow/webhook。 非常奇怪的是,有时我收到的请求是作为 DialogFlow 源,有时是作为 SDK 源。 此外,配置的 "Actions" 部分应该告诉它是否链接到 "dialog flow"、"SDK" 或其他任何东西,但它是空的,我无法将其正确设置回来。 最后,也许 dialogflow 在更新管理多语言后的迁移可能并不完美,因为项目最初是全英文的,但是当我导出项目时,JSON 文件都被命名为 "intentName_fr" 而不是“_en”。

TLDR; 这个项目可能在各个层面都搞砸了 :D

我用相同的源代码从头开始构建了一个新的,它工作正常。我收到问题 "is it ok if i send that to your phone ?",如果我回答是,我会在我的 phone.

上收到通知

谢谢大家的回答:) !