Skip to content

Instantly share code, notes, and snippets.

@IainPeregrine
Last active December 15, 2015 06:38
Show Gist options
  • Save IainPeregrine/5217340 to your computer and use it in GitHub Desktop.
Save IainPeregrine/5217340 to your computer and use it in GitHub Desktop.
var configuration = {
domain: 'localhost',
port: 80,
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 ntwitter = require('ntwitter')
var twitter = new ntwitter(configuration.keys);
var request = require('request');
passport.use(
new twitter_strategy({
consumerKey: configuration.keys.consumer_key,
consumerSecret: configuration.keys.consumer_secret,
callbackURL: 'http://'+configuration.domain+'/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: '/send_tweet', failureRedirect: '/' }));
app.get('/send_tweet', function (req, res, next){
var opp = {
uri: 'https://api.twitter.com/1.1/statuses/retweets_of_me.json',
method: 'GET',
headers: {
"Authorization": "Bearer "+GLOBAL_USER.token
}
}
request(opp, function (error, c_res, res_body){
console.log(error)
console.log(res_body)
})
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment