【问题标题】:Dialogflow webhook (Actions on Google). Should I be using RichResponse or not?Dialogflow webhook(Actions on Google)。我是否应该使用 RichResponse?
【发布时间】:2018-08-31 00:21:47
【问题描述】:

通过阅读 Actions on Google 的文档,我通过使用丰富的响应类并为其提供简单的响应、轮播和一些建议芯片,构建了一个浏览轮播。

const carouselItems = [];
items.forEach(item => {
    const carouselItem = new BrowseCarouselItem({
        description: item.description.text,
        image: new Image({
            alt: item.title,
            url: item.image,
        }),
        url: item.link,
        title: item.title,
    })
    carouselItems.push(carouselItem)
});


conv.ask(new RichResponse({
    items: [{
        simpleResponse: new SimpleResponse("the simple response message"),
        carouselBrowse: new BrowseCarousel({ 
            items: [ browseCarouselItem1, browseCarouselItem2 ],
        }),
    }],
    suggestions: ["suggestion1", "suggestion2"]
});

花时间做这件事后,我发现富响应类似乎是不必要的。事实上,我可以通过连续使用 3 次 conv.ask() 来获得相同的结果。

conv.ask("the simple response message");
conv.ask(new BrowseCarousel({
    items: [ browseCarouselItem1, browseCarouselItem2 ]
}));
conv.ask(new Suggestions([ "suggestion1", "suggestion2" ]);

有了这个发现,我发现自己不确定正确的方法。这些方法中的一种会替代另一种吗?最佳做法是什么?我在整个 webhook 中使用了几次 RichResponse,现在我不确定我是否正在使用过时的类。

【问题讨论】:

    标签: node.js dialogflow-es actions-on-google google-home


    【解决方案1】:

    它不是“过时的”,但它是不必要的。标准做法是多次调用ask() 并让库为您构建RichResponse 对象。但是库确实在内部使用它,所以它并没有过时。

    当我使用 actions-on-google 库时,我更喜欢使用多个 ask(),因为我不必使用所有这些。我可以根据可用的功能或适当的响应将其中一些包含在不同的块中。

    使用最适合您的方式。

    【讨论】:

    • 啊,我明白了。所以它并不是真的打算导入到我收集的 webhook 中。这很有道理,谢谢你的帮助。附:我试图支持您的回答,但显然,我的帐户太新,无法生效:(
    • 很高兴答案有帮助。 (奇怪的是接受/赞成。)
    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    相关资源
    最近更新 更多