@drm2/twitterbot v0.0.6
@drm2/twitterbot
A JavaScript/Node framework for building better Twitter bots. Built on Twit with full Promise support.
Installation
@drm2/twitterbot is available via NPM.
npm install @drm2/twitterbot --saveFeatures
- REST API Access
- Streaming API Access
- Scheduling
API
Initialization
TwitterBot is built on top of Twit, so it is initialized the same way.
Example
var TwitterBot = require('@drm2/twitterbot');
var options = {
consumer_key: process.env.TWITTER_CONSUMER_KEY,
consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
access_token: process.env.TWITTER_ACCESS_TOKEN,
access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET,
};
var bot = new TwitterBot(options);References
Twit
[TwitterBot].tweet(message)
Posts a new Tweet.
message: string
The status you want to post on Twitter.
Example
bot.tweet('Hello, World!')
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
[TwitterBot].getTweet(id)
Retrieves a Tweet with the given id.
id: string
The id of the Tweet you want to retrieve.
Example
bot.getTweet('IdOfTheTweetYouWantToRetrieve')
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
[TwitterBot].removeTweet(id)
Removes a Tweet with the given id.
id: string
The id of the Tweet you want to remove.
Example
bot.removeTweet('IdOfTheTweetYouWantToRemove')
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
[TwitterBot].reply(message, options)
Posts a Tweet as a reply to the supplied User/Tweet.
message: string
The message you want to send.
options: object
An object containing both the screen_name and the tweet_id of the respective User and Tweet you want to reply to.
Example
var options = {
screen_name: 'drmyersii',
tweet_id: '787053538962706432'
};
bot.reply('Hi David! This is a test.', options)
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
- POST statuses/update (specifically the
in_reply_to_status_idparameter)
[TwitterBot].retweet(id)
Retweets a Tweet with the given id.
id: string
The id of the Tweet you want to retweet.
Example
bot.retweet('IdOfTheTweetYouWantToRetweet')
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
[TwitterBot].undoRetweet(id)
Removes the Retweet based on the given Tweet id.
id: string
The id of the original Tweet (can also be the Retweet id).
Example
bot.undoRetweet('IdOfTheOriginalTweetOrTheRetweet')
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
[TwitterBot].message(message, options)
Sends a new DM (direct message) to the specified User from the authenticated User.
message: string
The message you want to send.
options: object
An object containing either the screen_name or the user_id of the User you want to message.
Example
// with screen_name
var options = { screen_name: 'drmyersii' };
// or
// with user_id
var options = { user_id: '286856718' };bot.message('Hello, World!', options)
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
console.log('Data:', result.data);
console.log('Response:', result.resp);
});References
Twit
[TwitterBot].getMentions()
Returns the 20 most recent mentions for the authenticated user.
Example
bot.getMentions()
.catch(function (error) {
console.log('Error:', error);
})
.then(function (result) {
// loop through the results and log the actual Mention messages
result.data.forEach(function (mention) {
console.log(mention.text)
});
});References
Twit
[TwitterBot].filteredStream(options)
Returns public statuses that match one or more filter predicates.
options: object|array|string
If the parameter passed is of type object, the User is supplying multiple parameters to the statuses/filter Streaming API. If it is of type array or string, the User is using shorthand to just pass the track parameter to the API. For more information, view the references below.
Example
// passing multiple params
var options = { track: '#bots', stall_warnings: true };
// or
// using the shorthand method
var options = '#bots';// initiate the stream listener
var stream = bot.filteredStream(options);
// now we can listen for any events emitted by Twit (see references below)
stream.on('tweet', function (tweet) {
console.log('New Tweet:', tweet.text);
});References
Twit
[TwitterBot].schedule(action, schedule)
Runs the given action(s) based on the given schedule.
action: function
The action to run on the given schedule. Usually a function containing the logic to run TwitterBot actions.
schedule: Date|string
The Date object or CRON string used to define the schedule.
Example
// set our schedule for 30 seconds from now
var schedule = new Date(Date.now() + (30 * 1000));
var handler = bot.schedule(function () {
bot.tweet('Hello, World!');
}, schedule);
// if you want to cancel the action at any point before it runs, just use the handler
handler.cancel();References
Node Schedule
[TwitterBot].repeat(action, delay)
Repeats the given action(s) based on the given delay.
action: function
The action to run on every iteration. Usually a function containing the logic to run TwitterBot actions.
delay: integer
The delay time (in milliseconds) between each iteration.
Example
// Tweets 'Hello, World!' once every hour
var handler = bot.repeat(function () {
bot.tweet('Hello, World!');
}, (60 * 60 * 1000));
// if you want to cancel the repeater at any point, just use the handler
handler.cancel();