使用nodejs将图像上传到twitter

时间:2017-03-21 21:45:41

标签: node.js twitter-rest-api

我正在https://github.com/desmondmorris/node-twitter使用twitter节点js包,并且遇到上传图片的问题(发布简单的推文不会引起任何问题)。

这是我的代码,请注意第一步是从S3下载图像:

 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);
          }
        });
      });

我收到以下错误:“媒体类型无法识别”

我从S3手动下载了图像,看起来有效,所以我不确定是什么问题。

1 个答案:

答案 0 :(得分:0)

事实证明,要下载带有请求承诺的图像,我需要指定它 这是二进制数据。

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