我正在尝试为我的dialogflow代理执行webhook。但是,根据调用的特定意图,有四个特定的意图应该全部具有不同的JSON响应。现在,我基于被调用的意图的displayName创建一个开关盒。但是,这是行不通的。我是否应该使用其他参数来检查除displayName
之外的其他意图?
这是我的代码,只能输出“测试”
server.post("/get-bill-details", function(req, res) {
let intentName = req.body.queryResult.intent.displayName;
let ret = "test";
if(intentName == "1 - Bill"){
ret = "your billing amount is $120.";
}
return res.json({
fulfillmentText: ret,
source: "get-bill-details"
});
});
答案 0 :(得分:0)
我建议您使用客户端库,因为它们可以简化解析JSON的过程并减少开发时间。您可以将NodeJS或Python客户端用于Dialogflow。另外,如果您需要Google Assistant,还可以使用以下NodeJS库来构建Webhook。他们都有关于如何在云上或使用Express和其他框架构建Webhooks的文档。
答案 1 :(得分:0)
与其匹配意图名称,不如给意图提供一个动作名称(请尽量不要使用空格,例如 input.welcome )。
然后使用
获取action参数 <page name="studio_page_uj7zz" string="MyTabName">
<group name="studio_group_uj7zz">
<iframe marginheight="0" marginwidth="0" frameborder="0" src="https://www.example.com/salepage.aspx?SaleOrderId={model.id}" width="100%" height="1000"/>
</group>
</page>
正如abhinav所说,您可以使用this库来缩短开发时间并提高代码的可读性,这也有助于跨平台响应Cards,Image和Recommendations。
let action = req.body.queryResult.action;
switch(action) {
your logic..
}