一尘不染

使用Node.js调用JSON API

node.js

我正在尝试获取登录到我的应用程序中的用户的Facebook个人资料图片。Facebook的API声明http://graph.facebook.com/517267866/?fields=picture返回正确的URL作为JSON对象。

我想从代码中获取图片的URL。我尝试了以下操作,但这里缺少内容。

 var url = 'http://graph.facebook.com/517267866/?fields=picture';

 http.get(url, function(res) {
      var fbResponse = JSON.parse(res)
      console.log("Got response: " + fbResponse.picture);
    }).on('error', function(e) {
      console.log("Got error: " + e.message);
 });

运行此代码将导致以下结果:

undefined:1

^
SyntaxError: Unexpected token o
    at Object.parse (native)

阅读 321

收藏
2020-07-07

共1个答案

一尘不染

回调中的res参数http.get()不是正文,而是一个http.ClientResponse对象。您需要组装车身:

var url = 'http://graph.facebook.com/517267866/?fields=picture';

http.get(url, function(res){
    var body = '';

    res.on('data', function(chunk){
        body += chunk;
    });

    res.on('end', function(){
        var fbResponse = JSON.parse(body);
        console.log("Got a response: ", fbResponse.picture);
    });
}).on('error', function(e){
      console.log("Got an error: ", e);
});
2020-07-07