0

我在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 手动下载了图像,它似乎有效,所以我不确定是什么问题。

4

1 回答 1

0

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

var promise = requestP({
        uri: tweet.imageURL,
        encoding: null           //note addition here
      })
于 2017-03-21T22:13:10.930 回答