Twilio Autopilot - 如何从 Whatsapp 接收图像?

Twilio Autopilot - How can I receive images from Whatsapp?

我正在使用 Twilio Autopilot 构建聊天机器人,我想获取发送给机器人的图像,如何获取?我怎样才能获得地点?

非常感谢。

Autopilot Troublehooting

无法接收彩信

Autopilot 目前无法在任何消息通道上接收包含图片或 Twilio 支持的其他媒体类型的消息,并将抛出代码为 11200 的错误。

我还没有尝试过 WhatsApp 位置数据,但有一篇关于该功能的博客可能对您有所帮助?

New Rich Features Support Deeper Customer Engagement on WhatsApp

这里是 Twilio 开发人员布道者。

没有一种简单的方法可以做到这一点,但有一些潜在的解决方法。一种是拥有一个 webhook 端点,它将获取输入,如果有效负载包含图像元素,则可以对其进行任何您想做的事情,否则,如果它只是文本,则可能会发送到 Autopilot。这在 this blog post on Autopilot enhancements in Node.js 中已经结束。

另一种方法是Twilio Function that would point to a Twilio Studio flow or 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 Messaging 支持的所有媒体格式。

{
                        "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 的博客 post 感兴趣。

如果这有帮助,请告诉我! :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);
};