我有一个data url
(来自-画布)。我正在使用Messenger的Attachment Upload API
上传图片。
这是我的代码(在JS Node中):
let data = {
'recipient': JSON.stringify({id: psid}),
'message': JSON.stringify({
"attachment": {
"type": "image",
"payload": {}
}
}),
'filedata':controlData.data //this is the data url
};
request({
url: 'https://graph.facebook.com/v2.6/me/messages?access_token=' + accessToken,
method: 'POST',
json: true,
formData: data,
}, function (error, response) {
if (error) {
console.log('Error sending messages: '+ JSON.stringify(error));
} else if (response.body.error) {
console.log('Error_: ' + JSON.stringify(response.body.error));
}
else {
console.log('response: ' + JSON.stringify(response.body));
}
});
我收到一个错误:
“(#100)上传的文件数量不正确。必须精确上传一个 文件。”
所以我试图将数据URL更改为缓冲区:
let regex = /^data:.+\/(.+);base64,(.*)$/;
let matches = controlData.data.match(regex);
let ext = matches[1];
let data = matches[2];
bufferdData = Buffer.from(data, 'base64');
,然后将“文件数据”更改为:'filedata':bufferdData
我仍然遇到相同的错误。
有人知道解决这个问题的方法吗?