【发布时间】:2021-08-07 03:01:37
【问题描述】:
大家好,
一周以来,我一直在尝试将 Dialogflow 与 Twilio 集成以用于 WhatsApp 消息传递。
集成已成功配置,但我在使用 Axios 通过 HTTP 请求检索我们的产品时遇到奇怪的错误。
测试代码在这里:
function testLoopReply(agent) {
const category_name = 'Small%20Appliances';
return new Promise((resolve, reject) => {
axios.get(`https://sheetdb.io/api/v1/qvlk728a5p23g/search?Categories=*${category_name}*&Status=1&limit=1`).then(function (res) {
let Categories = res.data;
if (Categories) {
for (const product of Categories ){
agent.add(`https://alaswadtrading.com/index.php?route=product/product&product_id=${product.ProductID}\n\n${product.Name}`);
}
} else {
agent.add(`No items found in the selected category (${category_name})`);
}
resolve();
});
});
}
考虑场景 1:
- 设置(Category_Name = “Cooking”),webhook 响应有多个文本响应:
{
"fulfillmentMessages": [
{
"text": {
"text": [
"https://alaswadtrading.com/index.php?route=product/product&product_id=2\n\nBEKO STANDARD COOKER HOOD 60CM - INOX"
]
}
},
...
{
"text": {
"text": [
"https://alaswadtrading.com/index.php?route=product/product&product_id=44\n\nBEKO GAS COOKER 90X60 CLOSE DOOR"
]
}
}
],
"outputContexts": []
}
在这种情况下,代理通常会根据附加的快照回复这些多个结果:
但是 Twilio 没有响应,并且根据附加的快照触发了错误 11200:
现在,考虑第 2 种情况
- 设置(Category_Name = “Small%20Appliances”),webhook 响应有多个文本响应:
{
"fulfillmentText": "https://alaswadtrading.com/index.php?route=product/product&product_id=1\n\nBEKO TURKISH COFFEE MACHINE SINGLE CUP SKY BLUE",
"outputContexts": []
}
在这种情况下,代理通常会根据附加的快照回复结果:
此外,Twilio 运行良好,并且按照附加的快照正常响应:
我已联系 Dialogflow 和 Twilio,但没有找到解决方案,他们的回复如下:
我不确定问题出在哪里,以及如何找出问题来发布我们的代理。
请给点建议?
相关帖子:Agent unable to print all results received from Axion library request in Dialogflow
【问题讨论】:
-
您如何将 Twilio 连接到 DialogFlow?
-
嘿@alaibh,我没有时间筛选 70 分钟的视频来找出你做了什么。您能否具体告诉我您从 Twilio 获取消息的部分,将其发送到 Dialogflow,然后将其发送回 Twilio 进行回复。我相信这很可能是错误所在以及我们应该注意的地方。
-
你能分享 Twilio 向其发出 webhook 请求的函数的代码吗?或者告诉我 Twilio 在哪里发出 Webhook 请求?
-
嗨,我想你想知道集成是如何完成的,这就是我与你分享教程的原因。无论如何,Twilio 触发了上面在标题“测试代码在这里:”下提到的函数,函数名称是“testLoopReply(agent)”,它放在 Dialogflow fulfilment 中。
标签: axios twilio dialogflow-es whatsapp twilio-api