Skip to content

Instantly share code, notes, and snippets.

@bdryanovski
Last active August 29, 2015 14:01
Show Gist options
  • Select an option

  • Save bdryanovski/5c373137173727adbfc7 to your computer and use it in GitHub Desktop.

Select an option

Save bdryanovski/5c373137173727adbfc7 to your computer and use it in GitHub Desktop.
Twitter Access Token/Secret
var twitterApi = require('node-twitter-api')
var express = require('express')
var app = express()
var port = 3333
var Twitter = new twitterApi({
consumerKey: 'K3EUu8yyJvkK7jNpnl7qJhxVw',
consumerSecret: 'UixSz6xMxPMnX2TrPood4zm01U20uCtQClibqepmjnwlOPWDCQ',
callback: 'http://0.0.0.0:' + port + '/callback'
})
var db = {}
app.get('/', function(req, res) {
Twitter.getRequestToken(function(error, requestToken, requestTokenSecret, results){
if (error) {
console.log("Error getting OAuth request token : " + error);
} else {
//store token and tokenSecret somewhere, you'll need them later; redirect user
db.requestToken = requestToken
db.requestTokenSecret = requestTokenSecret
res.redirect('https://twitter.com/oauth/authenticate?oauth_token='+ db.requestToken)
}
});
})
app.get('/callback', function(req, res) {
Twitter.getAccessToken(db.requestToken, db.requestTokenSecret, req.query.oauth_verifier, function(error, accessToken, accessTokenSecret, results) {
if (error) {
console.log(error);
} else {
//store accessToken and accessTokenSecret somewhere (associated to the user)
//Step 4: Verify Credentials belongs here
db.accessToken = accessToken
db.accessTokenSecret = accessTokenSecret
res.redirect('/verify')
}
});
})
app.get('/verify', function(req,res) {
Twitter.verifyCredentials(db.accessToken, db.accessTokenSecret, function(error, data, response) {
if (error) {
//something was wrong with either accessToken or accessTokenSecret
//start over with Step 1
console.log('We have problems authenticating the user', error)
} else {
//accessToken and accessTokenSecret can now be used to make api-calls (not yet implemented)
//data contains the user-data described in the official Twitter-API-docs
//you could e.g. display his screen_name
res.json({ connection: db, user: data })
}
});
})
app.listen(port, function() {
console.log('Application is listening to http://0.0.0.0:'+ port)
})
{
"name": "twitteraccess",
"version": "0.0.1",
"description": "Twitter Script to get AccessToken and Secret",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Bozhidar Dryanovski",
"license": "ISC",
"dependencies": {
"express": "^4.2.0",
"oauth": "^0.9.11",
"request": "^2.34.0",
"node-twitter-api": "^1.2.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment