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想要的东西?