diff --git a/examples/twitter-example.js b/examples/twitter-example.js new file mode 100644 index 0000000..90b6adc --- /dev/null +++ b/examples/twitter-example.js @@ -0,0 +1,75 @@ +var http = require('http'); +var OAuth = require('../lib/oauth.js').OAuth; +var nodeUrl = require('url'); +var clientID = ''; +var clientSecret = ''; +var callbackURL = ''; + +oa = new OAuth( + 'https://api.twitter.com/oauth/request_token', + 'https://api.twitter.com/oauth/access_token', + clientID, + clientSecret, + '1.0', + callbackURL, + 'HMAC-SHA1' +); + +http.createServer(function (request, response) { + oa.getOAuthRequestToken(function (error, oAuthToken, oAuthTokenSecret, results) { + var urlObj = nodeUrl.parse(request.url, true); + var authURL = 'https://twitter.com/' + + 'oauth/authenticate?oauth_token=' + oAuthToken; + var handlers = { + '/': function (request, response) { + /** + * Creating an anchor with authURL as href and sending as response + */ + var body = ' Get Code '; + response.writeHead(200, { + 'Content-Length': body.length, + 'Content-Type': 'text/html' }); + response.end(body); + }, + '/callback': function (request, response) { + /** Obtaining access_token */ + var getOAuthRequestTokenCallback = function (error, oAuthAccessToken, + oAuthAccessTokenSecret, results) { + if (error) { + console.log(error); + response.end(JSON.stringify({ + message: 'Error occured while getting access token', + error: error + })); + return; + } + + oa.get('https://api.twitter.com/1.1/account/verify_credentials.json', + oAuthAccessToken, + oAuthAccessTokenSecret, + function (error, twitterResponseData, result) { + if (error) { + console.log(error) + res.end(JSON.stringify(error)); + return; + } + try { + console.log(JSON.parse(twitterResponseData)); + } catch (parseError) { + console.log(parseError); + } + console.log(twitterResponseData); + response.end(twitterResponseData); + }); + }; + + oa.getOAuthAccessToken(urlObj.query.oauth_token, oAuthTokenSecret, + urlObj.query.oauth_verifier, + getOAuthRequestTokenCallback); + + } + }; + handlers[urlObj.pathname](request, response); + }) + +}).listen(3000);