将数据网址上传到Messenger上传API

时间:2019-06-03 06:57:32

标签: node.js facebook rest file-upload facebook-messenger

我有一个data url(来自-画布)。我正在使用Messenger的Attachment Upload API上传图片。

upload docs

这是我的代码(在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

我仍然遇到相同的错误。

有人知道解决这个问题的方法吗?

0 个答案:

没有答案