Загрузить данные URL в API загрузки сообщений - PullRequest
0 голосов
/ 03 июня 2019

У меня есть data url (из - холст ).И я использую Messenger Attachment Upload API для загрузки изображения.

upload docs

Вот мой код (в узле 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

И я все еще получаю ту же ошибку.

Кто-нибудь знаетрешение этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...