2012-10-28 15 views
15

Ich arbeite an einem Projekt mit Facebook Connect in node.js. Alles funktioniert großartig, aber jetzt mag ich für den angeschlossenen Benutzer eine Liste von Freunden aus Facebook zu bekommen, habe ich die Zugriffstoken von dem Benutzer , aber ich weiß nicht, wie die Daten starten von Facebook bekommenWie bekomme ich Facebook Freunde von Facebook API mit node.js

All Hilfe?

Antwort

22

Arbeiten mit Facebook-API von node.js ist sehr einfach, ein Modul erstellen (zum Beispiel: 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(); 
} 

nun in Ihrem Code importieren Sie Ihren Facebook-Modul (var facebook = require('./facebook.js');) und verwende es wie hier:

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

Die getFbData() ist eine generische Funktion, Sie können sie mit Ihrem API-Anfragepfad aufrufen (zB '/ me/friends'), die access token des aktuellen Benutzers übergeben und eine Callback-Funktion aufrufen, wenn die Daten bereit sind.

+1

Funktioniert wie eine Magie! Danke! –

+0

kann ich Freunde und gemeinsame Freunde bekommen? wie dann? – learner

+0

Das hat gut für mich funktioniert. Obwohl es wichtig ist zu erkennen, dass 'getFbData' eine Zeichenfolge zurückgibt. Sie können es dann mit 'var json = JSON.parse (responseData) nach json parsen;' – toddg

Verwandte Themen