Twtrbot is a simple Node module wrapper that allows developers to build a Twitter bot via the Twitter API in conjunction with the twit module. Using an object-oriented approach, TwtrBot makes calling functions more intuitive, resulting in cleaner and easier to understand code.
TwtrBot arose from a personal need to encapsulate popular actions such as posting a status, retweeting a status, and searching for statuses, into a set of methods for better efficiency and code maintainability.
npm i twtrbot --save
Be sure to first create a new bot (aka application) over at https://developer.twitter.com/. This package can and should be used in conjunction to https://github.com/ttezel/twit.
JSDoc highlighting with link to corresponding Twitter API reference:
const TwtrBot = require('./TwtrBot');
const MyBot = new TwtrBot(CONSUMER_KEY CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
MyBot.postTweet("Hello world!"); // Post a Tweet
let params = {
lat: 34.052235,
long: -118.243683
};
MyBot.postTweet('Hello from Los Angeles!', params);
MyBot.searchTweets("oat milk latte").then(async (data) => {
let tweets = data.statuses;
for await (let tweet of tweets) {
let tweet_id = tweet.id;
MyBot.postRetweet(tweet_id);
}
});
MyBot.twit.stream('statuses/filter', { track: 'oolong milk tea' });
Import the module:
const TwtrBot = require('./TwtrBot');
Initialize your bot object:
const MyBot = new TwtrBot(CONSUMER_KEY CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
You can find find all your credentials over at https://developer.twitter.com/, under the Projects & Apps
tab.
Posting your first Tweet (aka status):
MyBot.postTweet("Hello world!"); // Post a Tweet
Posting a Tweet passing optional parameters:
let params = {
lat: 34.052235,
long: -118.243683
};
MyBot.postTweet('Hello from Los Angeles!', params);
Searching tweets based on a query and retweeting those tweets:
MyBot.searchTweets("oat milk latte").then(async (data) => {
let tweets = data.statuses;
for await (let tweet of tweets) {
let tweet_id = tweet.id;
MyBot.postRetweet(tweet_id);
}
});
Accessing the twit object to perform uncovered functions in the module:
MyBot.twit.stream('statuses/filter', { track: 'oolong milk tea' })
Feel free to make any changes and submit a pull request!