Open
Description
Here is the code in Node.js:
import { TwitterApi } from 'twitter-api-v2';
import fs from 'fs';
import path from 'path';
const CONSUMER_KEY = 'XXX';
const CONSUMER_SECRET = 'XXX';
const ACCESS_TOKEN = 'XXX';
const ACCESS_TOKEN_SECRET = 'XXX';
const BEARER_TOKEN = 'XXX';
// Replace with your API keys and tokens
const client = new TwitterApi({
appKey: CONSUMER_KEY,
appSecret: CONSUMER_SECRET,
accessToken: ACCESS_TOKEN,
accessSecret: ACCESS_TOKEN_SECRET
});
const tweets = [];
function postTweets(folderPath) {
fs.readdir(folderPath, (error, files) => {
if (error) {
return console.error('Unable to scan directory: ' + error);
}
files.forEach(file => {
const filePath = path.join(folderPath, file);
const fileData = fs.readFileSync(filePath);
console.log(`Trying to post next tweet: ${path.basename(filePath)}`);
const text = 'Some text';
// Upload the image to Twitter
client.v1.uploadMedia(filePath)
.then(mediaId => {
console.log('Media successfully uploaded');
// Post the tweet with the text and the uploaded image
client.v1.tweet(text, { media_ids: mediaId })
.then(tweet => {
console.log('Tweet successfully posted:', tweet.id);
tweets.push(tweet.data.id);
})
.catch(error => {
console.log('Tweet post failed', error);
})
}).catch(error => {
console.log('Media upload failed', error);
})
});
})
}
postTweets('d:/Pictures/Twitter/Images');
Why am I getting these non-descriptive error messages?
C:\Program Files\nodejs\node.exe .\twitter.js
Trying to post next tweet: 001.png
Trying to post next tweet: 002.png
Trying to post next tweet: 003.png
Media upload failed Error: Request failed with code 403
at RequestHandlerHelper.createResponseError (d:\Projects\NodeApps\node_modules\twitter-api-v2\dist\cjs\client-mixins\request-handler.helper.js:104:16)
at RequestHandlerHelper.onResponseEndHandler (d:\Projects\NodeApps\node_modules\twitter-api-v2\dist\cjs\client-mixins\request-handler.helper.js:262:25)
at IncomingMessage.emit (d:\Projects\NodeApps\lib\events.js:531:35)
at endReadableNT (d:\Projects\NodeApps\lib\internal\streams\readable.js:1696:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {error: true, type: 'response', code: 403, headers: {…}, rateLimit: undefined, …}
Media upload failed Error: Request failed with code 403
at RequestHandlerHelper.createResponseError (d:\Projects\NodeApps\node_modules\twitter-api-v2\dist\cjs\client-mixins\request-handler.helper.js:104:16)
at RequestHandlerHelper.onResponseEndHandler (d:\Projects\NodeApps\node_modules\twitter-api-v2\dist\cjs\client-mixins\request-handler.helper.js:262:25)
at IncomingMessage.emit (d:\Projects\NodeApps\lib\events.js:531:35)
at endReadableNT (d:\Projects\NodeApps\lib\internal\streams\readable.js:1696:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {error: true, type: 'response', code: 403, headers: {…}, rateLimit: undefined, …}
Media upload failed Error: Request failed with code 403
at RequestHandlerHelper.createResponseError (d:\Projects\NodeApps\node_modules\twitter-api-v2\dist\cjs\client-mixins\request-handler.helper.js:104:16)
at RequestHandlerHelper.onResponseEndHandler (d:\Projects\NodeApps\node_modules\twitter-api-v2\dist\cjs\client-mixins\request-handler.helper.js:262:25)
at IncomingMessage.emit (d:\Projects\NodeApps\lib\events.js:531:35)
at endReadableNT (d:\Projects\NodeApps\lib\internal\streams\readable.js:1696:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {error: true, type: 'response', code: 403, headers: {…}, rateLimit: undefined, …}
Metadata
Metadata
Assignees
Labels
No labels