我正在尝试创建一个可以使用tumblr.js api向tumblr发送帖子的应用。 我可以使用createPhotoPost方法发送单个图像,但我必须通过此方法在一个帖子中发送多个图像。
从文档中可以看出,createPhotoPost方法有一个"数据"参数,可以是带有" URL编码的二进制内容"
的数组当我尝试在数据数组中发送内容时,它返回" [错误:表单数据:不支持数组。]"。
有人可以帮忙解决这个问题,请解释我们应该在数组中传递什么(真的我没有得到什么是URL编码的二进制内容)?
提前致谢
答案 0 :(得分:1)
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]
}