2012-12-10 4 views
0

내 페이스 북 응용 프로그램의 인증에 문제가 있습니다. 페이스 북과 PHP 동기화 - 페이스 북 데이터 얻기

**Get facebook user->If user is not logged on -> Redirect user on facebook login page** 

**Get facebook user->If user is logged on -> Redirect user to authorize my facebook application->everything goes right without problems** 

내가 페이스 북은 iframe을 사용하여 내 응용 프로그램을 호스팅

가, 두 번째 프로세스 (사용자가 인증 창을 보여 결코) 작동하지 않는, 그리고 I : 내 로컬 웹 서버 프로세스에 일반적으로 내 응용 프로그램을 실행할 때 이렇게 간다 내가 CodeIgniter의 PHP 프레임 워크를 사용하고

Error validating access token: User xxxxxxx has not authorized application xxxxxxx. 

, 이것은 내 PHP 코드입니다 : 다음과 같은 예외가

$this->load->library('facebook'); 
     $user = null; 
     $user_profile = null; 

     $user = $this->facebook->getUser(); 
     if ($user) { 
      try { 
      // Proceed knowing you have a logged in user who's authenticated. 
      $access_token = $this->facebook->getAccessToken(); 
      $user_profile = $this->facebook->api($user); 

      } 
      catch (FacebookApiException $e) { 
      show_error(print_r($e, TRUE), 500); 
      } 
     } 
     else{ 
      $data = array(
      'redirect_uri' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx','scope'=>'email'); 
      $access_token = $this->facebook->getAccessToken(); 
     redirect($this->facebook->getLoginUrl($data)); 

     } 
     $data['facebook']=$user_profile; 
     $this->load->view('templates/header'); 
     $this->load->view('pages/prijavaKlasicnoFacebook', $data); 
     $this->load->view('templates/footer'); 
    } 

답변

0

당신은 iframe을에서의 OAuth 대화 상자를로드 할 수 없습니다 - 보안 이유 에스.

당신은 최상위 윈도우 인스턴스에로드해야 - 그래서 아무 서버 측 리디렉션하지만 클라이언트 측이 정확한을 포함하여 조각을 (JS top.location.href = "…";

출력에 스크립트를 받기 사용 "리디렉션" 로그인 URL).

+0

내가해야 할 일을 이해하지 못합니까? – MrD

+0

다시 : iframe에 머물러 있기 때문에 서버 측 리다이렉트가 필요하지 않습니다. JSON을 클라이언트 쪽에서 만 수행 할 수 있습니다. 따라서 적절한 JS 코드를 생성하여 클라이언트에 전달하십시오. – CBroe

+0

답변 감사합니다. – MrD

0

또한 범위에서 "스트림 읽기"및 "데이터 게시"를 제공해야합니다.