如何使用Node通过API向tumblr发送多个图像?

时间:2017-07-03 22:38:52

标签: node.js tumblr

Tumblr的documentation说你可以发送一个数组或"(URL编码的二进制内容)"为了发布照片信息。

" URL编码的二进制内容"实际意味着我如何使用Node完成此任务?

我有这个功能,我一直用它来从URL获取文件:

function getImage (url) {
  return new RSVP.Promise((resolve, reject) => {
    Request.get({
      url: url,
      encoding: null,
    }, (err, response, body) => {
      if (!err && response && response.statusCode == 200 && body) {
        const buff = Buffer.from(body);
        return resolve(buff.toString()); 
        // I've tried all kinds of stuff here:
        // return resolve(buff.toString('hex')); //nope
        // return resolve(buff.toString('binary')); //nope
        // return resolve(buff.toString('base64')); //nope
        // return resolve(encodeURIComponent(buff.toString('hex')); //nope
        // etc.

      }
    });
  });
};

然后我使用该函数的结果填充POST请求的data参数。如果我指定图像的source(url)而不是数据本身,我可以使用我的POST功能发送常规文本帖子和图像帖子。所以我不认为这是一个OAuth问题。

我得到的错误信息是:

{
  'meta': {
    'status': 400,
    'msg': 'Bad Request',
  },
  'response': { 'errors': ['Nice image, but we don\'t support that format. Try resaving it as a gif, jpg, or png.'] },
};

我发送的是JPEG和GIF,而不是他们想要的方式。我如何从GET的结果变成tumblr想要的东西?

0 个答案:

没有答案