Skip to content

Instantly share code, notes, and snippets.

@tomshaw
Created July 2, 2011 14:54
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tomshaw/1060623 to your computer and use it in GitHub Desktop.
Save tomshaw/1060623 to your computer and use it in GitHub Desktop.
Some Node.js Express, Jade, examples using Node-OAuth querying protected Twitter consumer resources.
function consumer() {
return new oauth.OAuth(
"https://twitter.com/oauth/request_token",
"https://twitter.com/oauth/access_token",
keys.twitterConsumerKey,
keys.twitterConsumerSecret,
"1.0A",
"http://localhost:3000/sessions/callback",
"HMAC-SHA1"
);
}
consume = {
process: function (url, req, callback, next) {
callback().getProtectedResource(url, "GET", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function(error, data) {
if (error) {
console.log(error);
}
next(JSON.parse(data));
});
},
sendRequest: function (url, req, consumer, response) {
this.process(url, req, consumer, response);
}
};
app.get('/timeline', loadUser, function(req, res) {
consume.sendRequest("http://twitter.com/statuses/user_timeline.json", req, consumer, function(response) {
res.render('twitter/index.jade', {
locals: { title: 'Your Twitter Timeline', currentUser: req.currentUser, items: response }
});
});
});
app.get('/home', loadUser, function(req, res) {
var renderTimeline = function(requestUrl, callback) {
callback().getProtectedResource(requestUrl, "GET", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data) {
if (error) console.log("[ERROR] getting timeline : " + sys.inspect(error), 500);
var obj= JSON.parse(data);
res.render('twitter/home.jade', {
locals: { title: 'Your Home Twitter Timeline', currentUser: req.currentUser, items: obj }
});
});
}
renderTimeline("http://twitter.com/statuses/user_timeline.json", consumer);
});
app.get('/friends', loadUser, function(req, res) {
consumer().getProtectedResource("http://api.twitter.com/1/friends/ids.json", "GET", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data) {
if (error) {
console.log("[ERROR] Could not query followers: " + sys.inspect(error));
}
var obj= JSON.parse(data);
res.render('twitter/friends.jade', {
locals: { title: 'Twitter Friends Ids', currentUser: req.currentUser, items: obj }
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment