2017-03-21 6 views
0

Ich benutze das twitter node js-paket bei https://github.com/desmondmorris/node-twitter und bin in probleme beim hochladen von bildern (posten einfach tweet verursacht kein problem).bild auf twitter mit nodejs hochladen

hier ist mein Code, beachten Sie, dass der erste Schritt das Bild von S3 ist das Herunterladen:

var Twitter = require('twitter'), 
requestP = require('request-promise-native'); 

var twitterConfig = config.twitter; 
    twitterConfig.access_token_key = tweet.accessToken; 
    twitterConfig.access_token_secret = tweet.accessTokenSecret; 
    var twitter; 

    // first get the image data 
    var promise = requestP(tweet.imageURL) 
     .then(imageData => { 
     //then the image first 
     twitter = new Twitter(twitterConfig); 
     return twitter.post("media/upload", { 
      media: imageData 
     }, function (error, tweets, response) { 
      if (!error) { 
      console.log(tweets); 
      } 
     }); 
     }); 

ich die folgende Fehlermeldung erhalten: „Medientyp nicht erkannt“

ich heruntergeladen das Bild manuell von S3, und es scheint gültig, so bin ich mir nicht sicher, was das Problem ist.

+0

haben Sie versucht, ImageData in eine lokale Datei zu schreiben, um zu sehen, was es enthält? – amenadiel

+0

Danke @amenadiel, das hat mich auf den richtigen Weg gebracht. Siehe die Antwort unten – otusweb

Antwort

0

Stellt sich heraus, dass zum Herunterladen von Bildern mit Anforderung-Versprechen, musste ich angeben, dass es Binärdaten war.

var promise = requestP({ 
     uri: tweet.imageURL, 
     encoding: null   //note addition here 
     })