Twilio自动驾驶仪-如何从Whatsapp接收图像?
我正在构建一个带有Twilio自动驾驶仪的聊天机器人,我想获取发送给该机器人的图像,我如何获取它?我怎样才能得到位置呢 非常感谢。 无法接收图片消息 Autopilot当前无法在任何消息通道上接收包含Twilio支持的图片或其他媒体类型的消息,并将抛出代码为11200的错误 我还没有试过WhatsApp位置数据,但有一个关于该功能的博客可能会有所帮助Twilio自动驾驶仪-如何从Whatsapp接收图像?,twilio,webhooks,chatbot,whatsapp,Twilio,Webhooks,Chatbot,Whatsapp,我正在构建一个带有Twilio自动驾驶仪的聊天机器人,我想获取发送给该机器人的图像,我如何获取它?我怎样才能得到位置呢 非常感谢。 无法接收图片消息 Autopilot当前无法在任何消息通道上接收包含Twilio支持的图片或其他媒体类型的消息,并将抛出代码为11200的错误 我还没有试过WhatsApp位置数据,但有一个关于该功能的博客可能会有所帮助 这里是Twilio开发者福音传道者 这不是一个简单的方法,但是有一些潜在的解决办法。一种是有一个webhook端点来获取输入,如果有效负载包含图像
这里是Twilio开发者福音传道者 这不是一个简单的方法,但是有一些潜在的解决办法。一种是有一个webhook端点来获取输入,如果有效负载包含图像的元素,则可以对其执行任何操作,否则如果它只是文本,则可能发送到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';
现在,在“收集”操作中,您还可以指定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"
]
},
最后,你可能会对这篇关于建筑的博文感兴趣
让我知道这是否有帮助!: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);
};