1. ホーム
  2. javascript

[解決済み] Node.jsでJSON APIを呼び出す

2023-04-11 23:51:35

質問

私のアプリケーションにログインしているユーザーの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)

どのように解決するのですか?

この 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);
});