将Node.js中的Facebook Messenger附件图像类型转换为base64

时间:2019-05-15 07:50:04

标签: javascript node.js image facebook base64

我需要编写一些代码,以在Facebook Messenger中获取图像网址并将其转换为图像。

但是,使用image-to-base64或fetch-base64将不起作用,因为facebook有效负载URL的末尾带有时间戳,而这些工具要求URL以.jpg或.png结尾。

网址格式:

https://scontent.fhan2-4.fna.fbcdn.net/v/t1.15752-0/p480x480/60251115_627131164420267_474161086648549376_n.png?_nc_cat=100&_nc_oc=AQmldFK_xUgJPT-rqrk4bxLivk8ispusU5THY7br4ZpvNTfcYVrfU-rBFlIX9cwUzaw&_nc_ht=scontent.fhan2-4.fna&oh=140ea3424f8fa6a9085b3ae88281fa51&oe=5D5F4DAD

我尝试使用image-to-base64和fetch-base6,但它们都不起作用。

const image2base64 = require('image-to-base64');

module.exports = (string) => {
    console.log(string);
    image2base64(string) // you can also to use url
        .then(
            (response) => {

                console.log(response); 
            }
        )
        .catch(
            (error) => {
                console.log(error); 
            }
        )
}

我想获取base64 resul,所以我想知道是否有任何软件包可以帮助我完成此任务。

1 个答案:

答案 0 :(得分:0)

我想我有问题。

对于任何需要在Facebook Messenger中获取附件网址的人,格式为:

message.attachments[0].payload

当表示为String时是这样的:

{“ url”:“ THE_URL_THAT_YOU_NEED ”}

因此,要获得 THE_URL_THAT_YOU_NEED ,您必须先删除字符串{"url":""},这很容易做到

var url= (JSON.stringify(event.message.attachments[0].payload).replace("{\"url\":\"","")).replace("\"}","");

可能不是最好的解决方案,但对我有用。