2016-08-01 31 views
1

我想创建一个应用程序,可以发送帖子到tumblr使用tumblr.js api。 我可以使用createPhotoPost方法发送单个图像,但我必须通过此方法在单个帖子中发送多个图像。使用tumblr.js api发布多个图像到tumblr

从它说,createPhotoPost方法有一个“数据”参数,可以用“URL编码的二进制内容”

数组当过我尝试在数据阵列送东西,它返回的文档“[错误:form-data:数组不支持。]“。

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

在此先感谢

回答

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 ]
其litterally
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] 
        }