Node.js 使用nodejs将图像上传到twitter

Node.js 使用nodejs将图像上传到twitter,node.js,twitter-rest-api,Node.js,Twitter Rest Api,我在使用TwitterNodeJS包时遇到了上传图片的问题(发布简单的tweet不会引起任何问题) 这是我的代码,请注意,第一步是从S3下载图像: var Twitter = require('twitter'), requestP = require('request-promise-native'); var twitterConfig = config.twitter; twitterConfig.access_token_key = tweet.accessToken;

我在使用TwitterNodeJS包时遇到了上传图片的问题(发布简单的tweet不会引起任何问题)

这是我的代码,请注意,第一步是从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手动下载了图像,它似乎有效,所以我不确定问题出在哪里。

结果表明,要下载带有请求承诺的图像,我需要指定 这是二进制数据

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

您是否尝试将imageData写入本地文件以查看其中包含的内容?谢谢@amenadiel,这让我走上了正确的道路。见下面的答案