使用tumblr.js api将多个图像发布到tumblr

时间:2016-08-01 05:36:34

标签: tumblr

我正在尝试创建一个可以使用tumblr.js api向tumblr发送帖子的应用。 我可以使用createPhotoPost方法发送单个图像,但我必须通过此方法在一个帖子中发送多个图像。

从文档中可以看出,createPhotoPost方法有一个"数据"参数,可以是带有" URL编码的二进制内容"

的数组

当我尝试在数据数组中发送内容时,它返回" [错误:表单数据:不支持数组。]"。

有人可以帮忙解决这个问题,请解释我们应该在数组中传递什么(真的我没有得到什么是URL编码的二进制内容)?

提前致谢

1 个答案:

答案 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]
                    }