4

Sails.js を使用してコントローラー内で Facebook の情報にアクセスしようとしています。これが私のコードです:

module.exports = {


  commonLikes : function(req,res){
    var other_uid = req.param('uid');
    //var me = req.params.user.uid;
    console.log(other_uid);

    User.findOne({uid : other_uid}).done( function(err,data){
        var other = data;

    var http = require('http'), options = {
            host : "https://graph.facebook.com",
            port : 80,
            path : "/"+other.uid+"/likes?access_token="+other.token,
            method : 'GET'
    };

    var webservice_data = "";

    var webservice_request = http.request(options, function(webservice_response)
    {
        webservice_response.on('error', function(e){ console.log(e.message); });
        webservice_response.on('data', function(chunk){ webservice_data += chunk;});
        webservice_response.on('end', function(){res.send(webservice_data);});
        console.log('coucou');
    });



    });
  }

};

http.request 関数は機能していないようですが、/Likes/commonLikes?uid=XXXXX にアクセスしようとするとエラーが発生します。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: getaddrinfo ENOTFOUND
    at errnoException (dns.js:37:11)
    at Object.onanswer [as oncomplete] (dns.js:124:16)

帆を使用して外部 API にアクセスする方法を知っている人はいますか?

ありがとう、

4

1 に答える 1

5

hostにプロトコルを含めないでください。

    var http = require('http'), options = {
        host : "graph.facebook.com",
        port : 80,
        path : "/"+other.uid+"/likes?access_token="+other.token,
        method : 'GET'
    };

を使用する場合は、 の代わりにモジュールをhttps使用し、ポート 443 を使用します。リクエストが完了したら、忘れずに追加してください。httpshttpreq.end()

于 2013-08-28T10:03:03.257 に答える