Skip to content

Instantly share code, notes, and snippets.

@navdeepsingh
Last active November 16, 2016 06:20
Show Gist options
  • Save navdeepsingh/e57893a4fe5f26016fef86344bffe78c to your computer and use it in GitHub Desktop.
Save navdeepsingh/e57893a4fe5f26016fef86344bffe78c to your computer and use it in GitHub Desktop.
Adonisjs Twitter Controller
'use strict'
const Config = use('Config')
var twitterAPI = require('node-twitter-api')
const promisify = require("es6-promisify")
const twitter = new twitterAPI({
consumerKey: Config.get('auth.twitterAuth.consumerKey'),
consumerSecret: Config.get('auth.twitterAuth.consumerSecret'),
callback: Config.get('auth.twitterAuth.callbackURL')
});
class TwitterController {
* connect (request, response) {
const getToken = promisify( twitter.getRequestToken.bind( twitter ), {multiArgs: true} )
const result = yield getToken()
yield request.session.put('requestToken', result[0])
yield request.session.put('requestTokenSecret', result[1])
response.send(`https://twitter.com/oauth/authenticate?oauth_token=${result[0]}`)
}
* callback (request, response) {
const requestToken = yield request.session.get('requestToken')
const requestTokenSecret = yield request.session.get('requestTokenSecret')
const oauth_verifier = request.param('oauth_verifier')
console.log('requestToken : ' + requestToken)
twitter.getAccessToken(requestToken, requestTokenSecret, oauth_verifier, function(error, accessToken, accessTokenSecret, results) {
if (error) {
console.log(error);
} else {
console.log(results)
//store accessToken and accessTokenSecret somewhere (associated to the user)
//Step 4: Verify Credentials belongs here
}
return
});
}
}
module.exports = TwitterController
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment