Node.js 使用nodejs将图像上传到twitter
我在使用TwitterNodeJS包时遇到了上传图片的问题(发布简单的tweet不会引起任何问题) 这是我的代码,请注意,第一步是从S3下载图像: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;
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,这让我走上了正确的道路。见下面的答案