Skip to content

Instantly share code, notes, and snippets.

@diorahman
Created July 16, 2012 10:19
Show Gist options
  • Save diorahman/3121957 to your computer and use it in GitHub Desktop.
Save diorahman/3121957 to your computer and use it in GitHub Desktop.
Test Timeline
var _ = require('lodash')
var request = require('request')
var async = require('async')
var db = require('./config/connection')
var QUERY_TOKENS = "SELECT token_fb, token_twitter, token_secret_twitter, token_gplus FROM sns_hub_users WHERE token_sns = ? "
function timeline(params, cb){
function facebook(token, callback){
var URL = 'https://graph.facebook.com/me/home?limit=10&access_token='
request(URL + token, function(a, b, c){
callback(a, JSON.parse(c.split('created_time').join('created_at')))
})
}
function twitter(token, secret, callback){
var oauth = {
consumer_key: 'OBpbWXoOCGMScvQ3J2AiMg',
consumer_secret: 'cTr2WS4iKykYPeFVam6QHijrAQv5cmUkJeLBYXKQ4',
token : token,
token_secret : secret
}
var options = {
url : 'https://api.twitter.com/1/statuses/home_timeline.json?include_entities=false&count=10',
oauth : oauth,
method : 'GET'
}
request(options, function(a, b, c){
callback(a, JSON.parse(c))
})
}
function token(params, clbk){
// get data from mysql
db.query(QUERY_TOKENS, [params.tokenSns], function(err, results){
try{
if(results.length <= 0){
clbk({code:'Not found', message : 'Tokens Not found'})
}
else {
/*
var facebook_token = 'AAAFri5eE2DYBAL8NtI11VrQ6Y8iH9EXFRJZB827yy18GZAhSt7Nsjcaa5sX5YlOeTcQ15rOOnH21uyKwNM01NipsAf0hwDrrqHyhi3AQZDZD'
var twitter_token = '560472203-3bTggLOJMPnJzzlEZNN6c1JdP9RdGwEtHs1sE0zK'
var twitter_token_secret = 'Q0Lh9y2Yufr8ZaRKVBGCd1ZTMx3R2wGQi7NqZs5E'
var gplus_token = 'ya29.AHES6ZQQWdo35F2TuiXzAFo7QYC76k44tgw1m0SzLVHEq8A'
if(!params.dummy){
var tokens = results[0]
twitter_token = tokens.token_twitter
twitter_token_secret = tokens.token_secret_twitter
facebook_token = tokens.token_fb
gplus_token = tokens.token_gplus
}*/
var tokens = results[0]
var twitter_token = tokens.token_twitter
var twitter_token_secret = tokens.token_secret_twitter
var facebook_token = tokens.token_fb
var gplus_token = tokens.token_gplus
async.parallel([
function(callback){
if(facebook_token) facebook(facebook_token, callback)
else callback(null, [])
},
function(callback){
if(twitter_token) twitter(twitter_token, twitter_token_secret, callback)
else callback(null, [])
},
],
function(err, results){
var arr = _.union(results[0].data, results[1])
var wall = _.sortBy(arr, function(t){ console.log(new Date(t.created_at).getTime()); return -(new Date(t.created_at).getTime())})
clbk(null, wall)
});
}
}
catch(err){clbk(err)}
})
}
token(params, cb)
}
// server
var express = require('express')
var server = express.createServer()
server.get('/timeline', function(req, res){
console.log(req.query)
timeline({tokenSns: 'fCfYufFGJPoZr_8i'}, function(err, wall){
res.send(wall)
})
})
server.listen(9119)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment