Instantly share code, notes, and snippets.

@santosh /app.js Secret
Created Jan 4, 2017

Embed
What would you like to do?
var TwitterPackage = require('twitter');
// twitter's secret keys are hidden with .gitignore
var apikeys = require('./apikeys.js');
// getTwitterSecret() returns apikeys array
var Twitter = new TwitterPackage(apikeys.getTwitterSecret());
console.log("SUCCESS: Jennifer initiated and ready to make query with Twitter API.")
console.log("INFO: Tracking tweets with @sntshk, and greeting them with custom message.")
// self explanatory code below
Twitter.stream('statuses/filter', {track: '@sntshk'}, function(stream) {
stream.on('data', function(tweet) {
// tweet object created above have many methods,
// see: https://dev.twitter.com/overview/api/tweets
// even we can go up to user: https://dev.twitter.com/overview/api/users
var txt = tweet.text;
var username = tweet.user.screen_name;
var real_name = tweet.user.name;
var tweet_id = tweet.id_str;
console.log('===========STREAM STARTS===========');
// everytime someone mentions @sntshk, log to console
console.log('-----------------------------------\n@' + username + " says: " + txt);
console.log("TID: " + tweet_id + ". TSTAMP: " + tweet.created_at + '\n-----------------------------------');
// And also reply to them.
// TODO: Can't write @sntshk in tweet. It goes in loop.
var reply = "Hi @" + username +", you've mentioned Santosh. I'm his personal assistant Jennifer. I am not very useful at the moment.";
// parameters that twitter accepts, along with text
var params = {
status : reply,
in_reply_to_status_id_str : tweet_id,
in_reply_to_screen_name : username,
lat: 28.6289143,
long: 77.2065322,
};
// post the composed tweet..
Twitter.post('statuses/update', params, function(err, data, response) {
if (err) {
console.log("Error is: " + err);
} else {
console.log('Tweeted: ' + params.status);
}
})
});
stream.on('error', function(error) {
console.log(error);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment