0

Facebookでユーザーを認証しようとしています:

var querystring = require('querystring');
var http = require('http');
var fs = require('fs');

getCookies(function(cookies){
  logIn(cookies);
});

function logIn(cookies) {
  var post_data = querystring.stringify({
      'email': 'email@domain',
      'pass': 'password'
  });

  var post_options = {
      host: 'www.facebook.com',
      port: '80',
      path: '/login.php?login_attempt=1',
      method: 'POST',
      headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'Content-Length': post_data.length,
          'user-agent': 'Mozilla/5.0',
          'set-cookie': cookies[0]
      }
  };

  var post_req = http.request(post_options, function(res) {
      res.setEncoding('utf8');
      console.log(res.statusCode);
      var data = '';
      res.on('data', function (chunk) {
          data += chunk;
      });
      res.on('end', function () {
          fs.writeFile("C:\\Users\\user\\Desktop\\fb.html", data, function(err) {
              if(err) {
                  console.log(err);
              } else {
                  console.log("The file was saved!");
              }
          });
      });
  });

  post_req.write(post_data);
  post_req.end();
}

function getCookies(callback){
  var get_options = {
      host: 'www.facebook.com',
      port: '80',
      path: '/',
      method: 'GET',
      headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'user-agent': 'Mozilla/5.0'
      }
  };

  var get_req = http.request(get_options, function(res) {
      var cookies = res.headers['set-cookie'];
      res.on('end', function (chunk) {
          callback(cookies);
      });
  });

  get_req.write('');
  get_req.end();
}

しかし、応答は、私のブラウザーの Cookie が有効になっていないというものです。Facebookに接続するために既存のライブラリを使用することを提案しないでください、私は学んでいます...事前に助けてくれてありがとう

4

1 に答える 1

1

Facebook は OAuth 認証を使用してユーザーを認証します。oAuth モジュールを使用して、http://nabaruns.blogspot.in/2013/01/linkedin-api-call-using-nodejs-oauth.htmlで Linkedin API にアクセスしました。同じことを試して、グラフ Facebook API を呼び出せるかどうかを確認できます。

お役に立てれば

于 2013-01-06T14:45:21.463 に答える