2013-08-30 3 views
1
  #!/usr/bin/perl -w 

      use WWW::Facebook::API; 
      use WWW::Facebook::API::Auth; 
      use WWW::Facebook::API::Canvas; 
      use HTTP::Request; 
      use LWP; 

      use CGI;         # load CGI routines 
      $q = CGI->new;        # create new CGI object 
      print $q->header,       # create the HTTP header 
      $q->start_html('Facebook App'),   # start the HTML 
      $q->h1('Facebook Authentication'),   # level 1 header 
      $q->end_html;        # end the HTML 

      my $facebook_api  = '-------------'; 
      my $facebook_secret = '----------------'; 
      my $facebook_clientid = '---------------------'; 

      my $client = WWW::Facebook::API->new(
      desktop   => 0, 
      api_version  => '1.0', 
      api_key   => $facebook_api, 
      secret   => $facebook_secret, 
      callback  => 'http://localhost/perl/facebook.pl', 

      ); 

      $client->app_id($facebook_clientid); 
      $q->redirect($client->get_login_url()); 

Facebook에 Afterlogin하면 콜백 URL이 작동하지 않습니다. 나는 facebook 자체에서 콜백 URL을 지정하고 싶지 않다. 소스 코드에서 콜백을 지정하고 싶습니다.Facebook Api 콜백이 작동하지 않습니다.

답변

5

callback => 'http://localhost/perl/facebook.pl',

페이스 북이 http://localhost에 콜백 요청 할 수 없습니다 - 로컬 호스트가 로컬 호스트하지 않습니다!

공개 대면 URL을 사용해야합니다.

+0

로컬 호스트 폴더가 있습니다. 리디렉션 코드는 해당 폴더에서만 실행됩니다. 콜백 URL을 극복하는 방법. 내가 페이스 북에서 콜백 URL을 설정하지 않을 때. – JacobDeepak

+0

컴퓨터에서 보낸 HTTP 요청 만 로컬 호스트에 도달 할 수 있습니다. 페이스 북이 보낼 HTTP 요청은 페이스 북이 사용자가 아니기 때문에 컴퓨터가 아닌 자신의 컴퓨터 중 하나에서 요청을 전송하기 때문에 연결할 수 없습니다. 공개 URL이 필요합니다. 'http : // localhost /'는 절대 공개 할 수 없습니다. – Quentin

+0

이 문제를 해결할 수있는 방법이 있습니다. – JacobDeepak

관련 문제