2016-08-01 6 views
1

Ich versuche, eine App zu erstellen, die Beiträge an tumblr senden kann mit tumblr.js api. Ich könnte ein einzelnes Bild mit der createPhotoPost-Methode senden, aber ich muss mehrere Bilder in einem einzigen Beitrag über diese Methode senden.Mehrere Bilder zu tumblr mit tumblr.js api posten

Aus der Dokumentation heißt es, dass createPhotoPost Methode ein „Daten“ Parameter hat, die ein Array mit „URL-codierten binären Inhalten“

sein kann Wann immer ich versuche, etwas in dem Datenfeld zu schicken es „liefert [ Fehler: Formulardaten: Arrays werden nicht unterstützt.] ".

Kann jemand bitte helfen, dieses Problem zu lösen und bitte erklären, was wir im Array übergeben sollten (Wirklich bekomme ich nicht, was URL-kodierte binäre Inhalte ist)?

Vielen Dank im Voraus

Antwort

1

Es ist ein Fehler in tumblr.js https://tumblr.github.io/tumblr.js/tumblr.js.html#line504

Die Dokumentation bei https://www.tumblr.com/docs/en/api/v2#posting korrekt ist.

Grundsätzlich ist das Problem, dass es nicht
data = [ one , two ]
seine litterally
params['data[0]'] = one ; params['data[1]'] = two; (? Ein PHP-Konvention)


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] 
        } 
sein soll
Verwandte Themen