【发布时间】:2020-02-14 14:25:23
【问题描述】:
我正在使用 Twilio Autopilot 构建一个聊天机器人,我想获取我发送给该机器人的图像,我该如何获取它?我怎样才能获得位置?
非常感谢。
【问题讨论】:
标签: twilio webhooks chatbot whatsapp
我正在使用 Twilio Autopilot 构建一个聊天机器人,我想获取我发送给该机器人的图像,我该如何获取它?我怎样才能获得位置?
非常感谢。
【问题讨论】:
标签: twilio webhooks chatbot whatsapp
这里是 Twilio 开发者宣传员。
没有一种简单的方法可以做到这一点,但有一些潜在的解决方法。一种是有一个 webhook 端点,它将获取输入,如果有效负载包含图像的元素,然后对它做任何你想做的事情,否则如果它只是文本,那么可能会发送到 Autopilot。这在this blog post on Autopilot enhancements in Node.js 中进行了讨论。
另一种方法是创建一个Twilio Function,如果它是第一条消息中的媒体,它将指向Twilio Studio flow 或Assets。
另一种是使用Twilio Functions 或类似的服务器。您应该有一个 Autopilot 任务,该任务使用 JSON 重定向到该函数,如下所示:
{
"actions": [
{
"redirect": {
"uri": "https://REPLACE-WITH-YOUR-FUNCTION-URL.twil.io/auso",
"method": "POST"
}
}
]
}
然后您的 Twilio 函数可以在 Node.js 中使用类似这样的内容获取图像 URL:
const bodyContent = event.MediaUrl0;
const filename = event.MessageSid + '.png';
现在在 Collect 操作中,您还可以将 Twilio.MEDIA 指定为期望媒体的问题类型,目前我们支持 Twilio 消息传递支持的所有媒体格式。
{
"question": "Please a take a picture of insurance card?",
"name": "insurance_card",
"type": "Twilio.MEDIA",
"validate": {
"allowed_types": {
"list": [
"image/jpeg",
"image/gif",
"image/png",
"image/bmp"
]
},
最后,您可能会对这篇关于构建 an image classifier with Autopilot and TensorFlow 的博文感兴趣。
让我知道这是否有帮助! :D
【讨论】:
关于图像 - 如这个自动驾驶任务程序示例所示,将输入类型指定为图像
{
"actions": [
{
"collect": {
"name": "contact",
"questions": [
{
"question": "Please upload a cool picture of yourself",
"name": "contact_image",
"type": "Twilio.MEDIA"
}
],
"on_complete": {
"redirect": {
"method": "POST",
"uri": "https://url.twil.io/image-processing"
}
}
}
}
]
}
然后您可以访问图像,如在以下功能中所做的那样
exports.handler = function(context, event, callback) {
//we get the Memory from the answered questions.
let memory = JSON.parse(event.Memory);
//set up an array of object "actions" for the autopilot to continue.
let actions = [];
let responseItem;
//print the url of the image
let image_url = memory.twilio.collected_data.contact.answers.contact_image.media.url;
console.log(image_url);
responseItem = {
"redirect": {
"method": "POST",
"uri": "task://next_task"
}
};
actions.push(responseItem);
let respObj = {
"actions": actions
};
callback(null, respObj);
};
【讨论】:
无法接收彩信
Autopilot 目前无法在任何消息传递通道上接收带有 Twilio 支持的图片或其他媒体类型的消息,并且会抛出代码 11200 的错误。
我没有尝试过 WhatsApp 位置数据,但有一篇关于该功能的博客可能会有所帮助?
New Rich Features Support Deeper Customer Engagement on WhatsApp
【讨论】: