我正在尝试创建一个应用程序,该应用程序可以使用tumblr.js api向tumblr发送帖子。我可以使用createPhotoPost方法发送单个图像,但我必须通过这种方法在单个帖子中发送多个图像。
从文档中可以看出,createPhotoPost方法有一个"数据"参数,可以是一个带有"URL编码的二进制内容"的数组
当我试图在数据数组中发送一些东西时,它会返回"[错误:表单数据:不支持数组。]"。
有人能帮助解决这个问题吗?请解释我们应该在数组中传递什么(我真的没有得到URL编码的二进制内容)?
提前感谢
tumblr.js中存在错误https://tumblr.github.io/tumblr.js/tumblr.js.html#line504
文档位于https://www.tumblr.com/docs/en/api/v2#posting是正确的。
基本上,问题是它不应该是data = [ one , two ]
它的垃圾params['data[0]'] = one ; params['data[1]'] = two;
(?PHP公约)
var request = require('request')// already a tumblr.js dependency
var currentRequest = request({
url:'https://api.tumblr.com/v2/blog/someblog.tumblr.com/post',
oauth:keys,
},function(err,response,body){
currentRequest//
debugger
cb()
})
var params = {
'type' :'photo',
'caption':'Click To Verify You Are A Robot',
}
var params_images = [
fs.createReadStream('image'),
fs.createReadStream('image')
]
// Sign it with the non-data parameters
currentRequest.form(params)
currentRequest.oauth(keys);
// Clear the side effects from form(param)
delete currentRequest.headers['content-type'];
delete currentRequest.body;
// And then add the full body
var form = currentRequest.form();
//@@@add params_images to params keys 'data[0]' 'data[1]' 'data[2]' ....
params_images.forEach(function(image,index){
params['data['+index+']']
})
for (var key in params) {
form.append(key, params[key]);
}
// Add the form header back
var form_headers = form.getHeaders()
for(var key in form_headers){
currentRequest[key] = form_headers[key]
}