Skip to content

Instantly share code, notes, and snippets.

@simianhacker
Forked from IainPeregrine/gist:5217340
Last active December 15, 2015 06:39
Show Gist options
  • Save simianhacker/5217989 to your computer and use it in GitHub Desktop.
Save simianhacker/5217989 to your computer and use it in GitHub Desktop.
var configuration = {
domain: 'localhost',
port: 3000,
keys: require('./keys.js')
}
var express = require('express');
var app = express();
app.listen(configuration.port);
var passport = require('passport');
var twitter_strategy = require('passport-twitter').Strategy;
var GLOBAL_USER;
var request = require('request');
passport.use(
new twitter_strategy({
consumerKey: configuration.keys.consumer_key,
consumerSecret: configuration.keys.consumer_secret,
callbackURL: 'http://'+configuration.domain+':'+configuration.port+'/auth/twitter/callback'
},
function(token, tokenSecret, profile, done) {
GLOBAL_USER = {
token: token,
tokenSecret: tokenSecret,
profile: profile
}
done(null, GLOBAL_USER);
}
));
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
app.configure(function() {
app.use(express.static('public'));
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.get('/auth/twitter', passport.authenticate('twitter'));
app.get('/auth/twitter/callback', passport.authenticate('twitter', { successReturnToOrRedirect: '/view-retweets', failureRedirect: '/' }));
app.get('/view-retweets', function (req, res, next){
var options = {
url: 'https://api.twitter.com/1.1/statuses/retweets_of_me.json',
oauth: {
consumer_secret: configuration.keys.consumer_secret,
consumer_key: configuration.keys.consumer_key,
token: GLOBAL_USER.token,
token_secret: GLOBAL_USER.tokenSecret
},
json: true
};
request(options, function (err, resp, body) {
if (err) return res.send(err.stack, 500);
res.send(body, 200);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment