2016-08-01 108 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] 
        }