如何使用Node.js从Facebook API获取Facebook好友

16
我正在使用node.js和Facebook Connect开展项目,一切进展顺利。现在我想获取已连接用户在Facebook上的好友列表,我已经拿到了用户的访问令牌(access token),但我不知道如何开始从Facebook获取数据。
有帮助吗?
1个回答

24

使用Node.js从Facebook API工作非常容易,创建一个模块(例如: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();
}

现在,在您的代码中导入您的Facebook模块 (var facebook = require('./facebook.js');) 并像这样使用它:

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

getFbData()是一个通用函数,您可以使用您的api请求路径(比如说'/me/friends'),传递当前用户的访问令牌和回调函数。当数据准备就绪时,会调用该回调函数。


我能获取朋友和共同好友吗?怎么做? - learner
这对我非常有用。不过要注意的是,getFbData返回一个字符串。你可以使用var json = JSON.parse(responseData);把它解析成JSON格式。 - toddg
1
这还有效吗? - Suisse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接