2013-01-19 3 views
0

가능한 중복 :
Facebook API error 191페이스 북 API 오류 191 무엇입니까

내가 사용하고 일부 코드에 다음과 같은 오류를 얻고있다. 191 API 오류 설명 :이 오류는

API 오류 코드입니다 지정된 URL은 응용 프로그램 오류 메시지가 소유하지 않은 : redirect_uri로는 응용 프로그램에 의해 소유되지 않습니다.

<?php 
$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret,'cookie' => true)); 
if($facebook->getUser() < 1) 
{ 
    $red_url = $page_url.'?sk=app_'.$app_id; 
    $redir = $facebook->getLoginUrl(array('redirect_uri'=>$red_url,'next'=>$red_url,'scope'=>'offline_access,publish_stream,status_update,photo_upload,user_birthday')); 
    echo "<script>top.location.href='".$redir."';</script>"; 
    exit; 
} 
$user = $facebook->api('/me'); 

어느 하나의 방법이 문제를 해결 얻을 설명하고 왜 이런 일이 발생 할 수 있습니까?

+1

오류가 매우 분명한 것 같다 - 다음 스크립트를 conatin 및 http://www.mydomain.com/my_directory/redirect.php 아래에 넣어 것입니다 예를 들어 redirect.php라는 이름의 파일을 만듭니다. 애플리케이션 설정에서 지정된 도메인 이름과 일치하지 않는 리디렉션 URL을 사용 중입니다. –

답변

0

도메인을 설정해야합니다/S는 어떤에서 응용 프로그램을 실행하기위한 것입니다 -와 (거의) 앱이 페이스 북에 닿는 모든 장소 (특히 클라이언트 측)은 동일한 도메인 (또는 그 하위 도메인)의 URL이어야합니다.

당신의 경우에는 사용자에게 앱을 승인하도록 요청한 다음 $red_url으로 리디렉션했는데 응용 프로그램이 설치되어 있지만 응용 프로그램 도메인에이 링크가 없습니다 (응용 프로그램 도메인에 facebook.com을 등록한 경우는 제외). 이온 대시 보드는

당신이 특정 탭에 사용자를 리디렉션하려면 - 당신은 예를 들어, 탭에 사용자를 리디렉션합니다 응용 프로그램의 도메인 아래에 프록시 파일을 만들 수 있습니다 :

는 등록 말할 수 app dashboard에서 앱 도메인으로 mydomain.com을 추가하십시오.

<?php 
$app_id ="ENTER_YOUR_APP_ID_HERE"; 
$page_url = "ENTER_THE_PAGE_URL_HERE"; //for example: http://www.facebook.com/techmarketing.co.il 
$red_url = $page_url.'?sk=app_'.$app_id; 

header("Location: {$red_url}"); 

를하고 스크립트로 변경됩니다 :

<?php 
$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret,'cookie' => true)); 
if($facebook->getUser()==0) 
{ 
    $red_url = "http://www.mydomain.com/my_directory/redirect.php"; 
    $redir = $facebook->getLoginUrl(array('redirect_uri'=>$red_url,'next'=>$red_url,'scope'=>'offline_access,publish_stream,status_update,photo_upload,user_birthday')); 
    echo "<script>top.location.href='".$redir."';</script>"; 
    exit; 
} 
$user = $facebook->api('/me'); 
+0

지금보십시오 -'$ app_id' 및'$ page_id'를 관련 값으로 바꿉니다. –

+0

i don ' redirect.php에서 모든 애플리케이션을 변경하고 싶다면 –

+0

슬프게도 각 앱을 다르게 프로그래밍해야하는 것과 마찬가지입니다. –

0

"크로스 사이트 스크립팅"이라고 할 수 있습니까?)?

해결 방법 :

브라우저, 편집 설정, 웹 사이트 < = 응용 프로그램 설정으로 사이트의 URL을 추가

여기 좀 더 배경 :

* http://techblog.hybris.com/2012/06/05/oauth2-the-implicit-flow-aka-as-the-client-side-flow/

redirect_uri : 서버가 redirect_uri를 구성했습니다 (강력히 추천합니다). 은 client_id의 설정과 일치해야합니다. Client_id와 redirect_uri는 모두 앱 개발자가 미리 가져와야하는 서버 측 설정입니다.

+0

downvote를 삭제했지만 현명한 바지 발언을 제거하는 것이 더 낫습니다. –

0

앱에 해당 웹 사이트에 대한 액세스가 허용되어 있다고 Facebook에 알릴 필요가 있습니다.

FB 개발자 대시 보드를 통해 앱 설정을 수정하십시오. 기본 설정 페이지에서 'Facebook 로그인이있는 웹 사이트'를 클릭하고 사이트 주소를 입력하십시오. 당신은 페이스 북의 응용 프로그램을 열 때

Editing your Facebook app websites

+0

시도했지만 아무 것도 ... –