Пример #1
0
Файл: app.js Проект: EAAL/WTBass
  fb.getAccessToken(appData.AppID, appData.AppSecret, req.param('code'), 'http://aryazeghbali.ir:3456/auth', function (error, access_token, refresh_token) {
  	if(error) {
  		res.render('error', {error: error.data});
  	}
  	else {
  		req.session.access_token = access_token;
  		fb.apiCall('GET', '/me/profile', {access_token: req.session.access_token}, function (error, response, body) {
			if(body.data == null) {
				res.render('error', {error: "login first"});
			}
			else
			{
				var userID = body.data[0].id;
				db.pictures.findOne({id: userID}, function (err, data) {
					if(!err && data != null && data.lastPic >= data.pictures.length) {
						res.render('error', {error: 'You had been subscribed to this vote'});
					}
					else {
					  	req.session.access_token = access_token;
					    // res.render('client', {title: 'Do you go?'});
					    res.redirect('photo');
					}
				});
			}
		});
	}
  });
Пример #2
0
 redirect, //cambiar si es necesario
 function (error, access_token, refresh_token) {
     if (error){
         log.debug('error getting access token:' + error);
         throw new Error('Error getting the acccess token'); 
     }
     log.notice('trying to get the tokens:' + new Date());
     req.session.user = {};
     req.session.user.access_token = access_token;
     req.session.user.access_token_secret = refresh_token;
     fb.apiCall('GET', '/me/', {access_token: req.session.user.access_token}, function(error, response, body){
         if (error){
             log.debug('error getting user info:' + error);
             throw new Error('Error getting user information'); 
         }
         log.notice('getting info from user:'******'/dashboard';
         if (invited){
             dashboard = '/dashboard?invited='+invited;
         }
         var ua = req.header('user-agent');
         /*if(/mobile/i.test(ua)) {
             res.json(invited);
             return;
         }*/
         res.redirect(dashboard);
     });
 }
Пример #3
0
 app.get('/friends', checkUser, function(req, res){
     fb.apiCall('GET', '/me/friends', {access_token: req.session.user.access_token}, function(error, response, body){
         if (error){
             log.debug('error getting friends list:' + error);
             throw new Error('Error getting friends list'); 
         }
         log.notice('getting friends from user:' + req.session.user.id);
         res.json(body);
     });        
 });
Пример #4
0
Файл: app.js Проект: EAAL/WTBass
			db.users.save(body, function (err7) {
				var userID = body.data[0].id;
				req.session.userID = userID;
				var pictures = [];
				fb.apiCall('GET', '/me/photos', {access_token: req.session.access_token, limit: 300}, function (error, response, bbody) {
					if(bbody == null)
						res.render('error', {error: "no picture!"});   		
			    	else {
				    	for(i in bbody.data) {
				    		var pic = bbody.data[i];
				    		var validTags = [];
				    		var users = [];
				    		if(pic.tags)
				    		{
					    		for (var i = pic.tags.data.length - 1; i >= 0; i--) {
					    			if(pic.tags.data[i].id) {
					    				validTags.push(pic.tags.data[i]);
					    				users.push(pic.tags.data[i].id);
					    			}
					    		}
						    	if(validTags.length >= 3 && validTags.length <= 10) {
					    			pictures.push({picID: pic.id, users: users, pic: pic.source, width: pic.width, height: pic.height, tags: validTags, votes: []});
					    		}
				    		}
				    	}
				    	// console.log(pictures[pictures.length-1].picID);
				    	pictures = shuffle(pictures);
				    	// console.log(pictures[pictures.length-1].picID);
				    	console.log(pictures.length);
				    	function insert2db (n, err, callback) {
				    		if(n < 0)
				    			return callback(err);
				    		db.pictures.find({picID: pictures[n].picID}, function (err, data) {
				    			if (err || data.length == 0) {
				    				db.pictures.save(pictures[n], function (err2) {
				    					return insert2db(n-1, err2, callback);
				    				});
				    			}
				    			else {
				    				return insert2db(n-1, err, callback);
				    			}
				    		});
				    	}
				    	insert2db (pictures.length-1, null, function (err) {
				    		if(err){
				    			res.render('error', {error: err});
				    		}
				    		else{
				    			res.redirect('vote');
				    		}
				    	});
			    	}
				});
			});
Пример #5
0
 app.post('/invite', checkUser, function(req, res){
     var usersl = req.param('users');
     var userl = 0;
     var onerror;
     if (usersl instanceof Array){
         userl = usersl.length;
         onerror = function (error) {
                     if (error) { log.debug('error posting on voted user'); return; }
                 };
         for (var i=0;i<userl;i++){
             fb.apiCall(
                 'POST',
                 '/'+usersl[i]._id+'/feed',
                 {
                     access_token: req.session.user.access_token,
                     message: app._locals.t('dashboard.invited'),
                     name: app._locals.t('dashboard.nominate'),
                     link: url
                 },
                 onerror
             );
         }
     }else{
         onerror = function (error) {
                 if (error) { log.debug('error posting on voted user'); return; }
             };
         fb.apiCall(
             'POST',
             '/'+usersl._id+'/feed',
             {
                     access_token: req.session.user.access_token,
                     message: app._locals.t('dashboard.invited'),
                     name: app._locals.t('dashboard.nominate'),
                     link: url
             },
             onerror
         );
     }
     res.json(true);
 });
Пример #6
0
 nominator.addUser(doc, users, function(err){
     if (err) { log.debug('error adding users'); res.json(null); return; }
     res.json(true);
     var usersl = req.param('users');
     var userl = 0;
     var onerror = function (error) {
                     if (error) { log.debug('error posting on voted user'); return; }
                 };
     if (usersl instanceof Array){
         userl = usersl.length;
         for (var i=0;i<userl;i++){
             fb.apiCall(
                 'POST',
                 '/'+usersl[i]._id+'/feed',
                 {
                     access_token: req.session.user.access_token,
                     message: app._locals.t('dashboard.added', { nname: doc.name }),
                     name: app._locals.t('dashboard.add'),
                     link: url + '?invited=' + req.param('id')
                 },
                 onerror
             );
         }
     }else{
         fb.apiCall(
             'POST',
             '/'+usersl._id+'/feed',
             {
                 access_token: req.session.user.access_token,
                 message: app._locals.t('dashboard.added', { nname: doc.name }),
                 name: app._locals.t('dashboard.add'),
                 link: url + '?invited=' + req.param('id')
             },
             onerror
         );
     }
 });
Пример #7
0
 nominator.vote(doc, voterid, userid, function(err, nom){
     if (err) { log.debug('error getting nominations:' + err); res.json(null); return; }
     var index = findIndexByKeyValue(nom.users, "_id", req.param('userid'));
     res.json(nom.users[index].votes);
     //post to my wall that i voted
     fb.apiCall(
         'POST',
         '/'+voterid+'/feed',
         {
             access_token: req.session.user.access_token,
             message: app._locals.t('dashboard.voted', {uname: nom.users[index].name , nname: nom.name }),
             name: app._locals.t('dashboard.vote'),
             link: url + '?invited=' + req.param('id')
         },
         function (error) {
             if (error) { log.debug('error posting on my wall'); return; }
             log.notice('posted on current user wall: ' + voterid);
         }
     );
     //post to the victim
     fb.apiCall(
         'POST',
         '/'+nom.users[index]._id+'/feed',
         {
             access_token: req.session.user.access_token,
             message: app._locals.t('dashboard.voted_u', { nname: nom.name }),
             name: app._locals.t('dashboard.vote'),
             link: url + '?invited=' + req.param('id')
         },
         function (error) {
             if (error) { log.debug('error posting on voted user'); return; }
             log.notice('posted on the voted user wall: ' + nom.users[index]._id);
         }
     );
     log.notice('nomination '+ req.param('id') +' voted by: ' + req.session.user.id );
 });
Пример #8
0
  fb.getAccessToken('190292354344532', 'ac9d7f273a15e91ac035871d04ef1915', req.param('code'), 'http://74.207.246.247:3001/fb/auth', function (error, access_token, refresh_token) {
  fb.apiCall('GET', '/me', {access_token: access_token, fields:'id,gender,first_name, middle_name,last_name,location,locale,friends,website'}, function (err, response, body){
		console.log(body);
    client.exists(body.id, function(err,que){
      console.log(que);
      if (que == 0){
        console.log('mak new');
        req.session._id = body.id;
        fs.mkdirSync('public/person/'+person._id, 644, function(err){console.log(err);}); //the user's image directory
request.get('https://graph.facebook.com/'+body.id+'/picture?type=large&access_token='+access_token).pipe(fs.createWriteStream('public/person/'+person._id+'/profile.jpg'));

				person.insert({
	        "facts.fname" : body.first_name,
	        "facts.mname" : body.middle_name,
	        "facts.lname" : body.last_name,
	        "facts.gender" : body.gender, 
	        "facts.website" : body.website, 
	        "secrets.fb_access_token" : access_token,
	        "secrets.fbx" : body.friends.data,
	        "secrets.fb_id" : body.id,
					"wire.feeds" : [{feed:'http://www.memeorandum.com/feed.xml', chans:['news']},{feed:'http://www.techmeme.com/feed.xml', chans:['tech']},{feed:'http://news.ycombinator.com/rss', chans:['YcombOverator']}]
				}, function(err, res){
					client.append(body.id, res._id, function(err){})
					//person.update({_id: res._id}, {$set : {person.facts.portrait:'person/'+person._id+'/profile.jpg'}})
				})
        };
      if (que == 1){
          console.log('mack old');
          client.get(body.id, function(e,r){
            var individual = mongoose.model('Person');
            req.session._id = r ;
            individual.update({'secrets.fb_id':  body.id}, {'secrets.fb_access_token': access_token,'secrets.fbx':body.friends.data}, {upsert:false, safe:true}, function (err, doc){
            res.redirect('/init');
            })
          })            
        }
    })	
	});
  });
Пример #9
0
    module.exports.prototype.api = function(type, method, params, callback) {
        var copiedParams = {};

        if (typeof params == "function") {
            callback = params;
            params   = undefined;
        }

        if (params != undefined) {
            Object.keys(params).forEach(function(key) {
                copiedParams[key] = params[key];
            });
        }

        copiedParams.access_token = this.token;

        facebook.apiCall(type, method, copiedParams, function(error, response, body) {
            if (!error && body.error) {
                error = body.error;
            }

            callback && callback(error, body);
        });
    };
Пример #10
0
 nominator.findNomination(id,function(err, doc){
     if (err) { log.debug('error getting nominations:' + err); res.json(null); return; }
     if (doc){
         var users = doc.users;
         var usersl = doc.users.length;
         var voters = doc.voters;
         var votersl = doc.voters.length;
         if (usersl > 0){
             var winner = users[0];
             for (var j=1; j<usersl;j++){
                 if (winner.votes < users[j].votes){
                     winner = users[j];
                 }
             }
             res.json(winner);
             var onerror = function (error) {
                             if (error) { log.debug('error posting on voted user'); return; }
                         };
             fb.apiCall(
                 'POST',
                 '/'+req.session.user.id+'/feed',
                 {
                     access_token: req.session.user.access_token,
                     message: app._locals.t('dashboard.won', { wname: winner.name, nname: doc.name }),
                     name: app._locals.t('dashboard.create'),
                     link: url
                 },
                 onerror
             );
             for (var i=0;i<usersl;i++){
                 if (users[i]._id == req.session.user.id){ continue; }
                 fb.apiCall(
                     'POST',
                     '/'+users[i]._id+'/feed',
                     {
                         access_token: req.session.user.access_token,
                         message: app._locals.t('dashboard.won', { wname: winner.name, nname: doc.name }),
                         name: app._locals.t('dashboard.create'),
                         link: url
                     },
                     onerror
                 );
             }
             for (i=0;i<votersl;i++){
                 if (voters[i]._id == req.session.user.id){ continue; }
                 fb.apiCall(
                     'POST',
                     '/'+voters[i]._id+'/feed',
                     {
                         access_token: req.session.user.access_token,
                         message: app._locals.t('dashboard.won', { wname: winner.name, nname: doc.name }),
                         name: app._locals.t('dashboard.create'),
                         link: url
                     },
                     onerror
                 );
             }
         }else{
             res.json(true);
         }
     }
     res.json(true);
     nominator.eraseNomination(id, function(err){
         if (err) { log.debug('error erasing nomination'); return; }
         log.notice('nomination '+ req.param('name') +' erased by: ' + req.session.user.id );
     });
 });