我正在使用node.js和Facebook Connect开展项目,一切进展顺利。现在我想获取已连接用户在Facebook上的好友列表,我已经拿到了用户的访问令牌(access token),但我不知道如何开始从Facebook获取数据。
有帮助吗?
有帮助吗?
使用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'),传递当前用户的访问令牌
和回调函数。当数据准备就绪时,会调用该回调函数。
getFbData
返回一个字符串。你可以使用var json = JSON.parse(responseData);
把它解析成JSON格式。 - toddg