У меня есть data url
(из - холст ).И я использую Messenger Attachment Upload API
для загрузки изображения.
Вот мой код (в узле JS):
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' на: 'filedata':bufferdData
И я все еще получаю ту же ошибку.
Кто-нибудь знаетрешение этой проблемы?