我正在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手动下载了图像,看起来有效,所以我不确定是什么问题。
答案 0 :(得分:0)
事实证明,要下载带有请求承诺的图像,我需要指定它 这是二进制数据。
var promise = requestP({
uri: tweet.imageURL,
encoding: null //note addition here
})