2012-10-28 12 views

risposta

22

Lavorare con facebook API da node.js è molto semplice, creare un modulo (ad esempio: facebook.js)

facebook.js

var https = require('https'); 

exports.getFbData = function(accessToken, apiPath, callback) { 
    var options = { 
     host: 'graph.facebook.com', 
     port: 443, 
     path: apiPath + '?access_token=' + accessToken, //apiPath example: '/me/friends' 
     method: 'GET' 
    }; 

    var buffer = ''; //this buffer will be populated with the chunks of the data received from facebook 
    var request = https.get(options, function(result){ 
     result.setEncoding('utf8'); 
     result.on('data', function(chunk){ 
      buffer += chunk; 
     }); 

     result.on('end', function(){ 
      callback(buffer); 
     }); 
    }); 

    request.on('error', function(e){ 
     console.log('error from facebook.getFbData: ' + e.message) 
    }); 

    request.end(); 
} 

Ora, nel codice importare il modulo di facebook (var facebook = require('./facebook.js');) e usalo come qui:

facebook.getFbData('USER_ACCESS_TOKEN', '/me/friends', function(data){ 
    console.log(data); 
}); 

getFbData() è una funzione generica, puoi chiamarla con il tuo percorso di richiesta api (ad esempio '/ me/amici'), passare lo access token dell'utente corrente e una funzione di callback da chiamare quando i dati sono pronti.

+1

Funziona come una magia! grazie! –

+0

posso avere amici e amici in comune? allora come? – learner

+0

Questo ha funzionato alla grande per me. È importante capire che 'getFbData' restituisce una stringa. È quindi possibile analizzarlo su json con 'var json = JSON.parse (responseData);' – toddg

Problemi correlati