developer tip

Facebook API 오류 191

optionbox 2020. 10. 17. 10:24
반응형

Facebook API 오류 191


내 프로젝트를 Facebook과 통합하려고합니다. 나는 처음에는 아기 단계를 밟고 로그인하고 Facebook 세션을 얻고 사용자 데이터를 얻으려고합니다. 로컬에서 개발 중이므로 Facebook 애플리케이션 설정은 다음과 같습니다.

site URL: http://127.0.0.1:8888/mySite/

캔버스 URL은 위와 동일합니다. 사이트 도메인을 지정하지 않았습니다.

그러나 로그인 버튼을 클릭하면 오류가 발생합니다.

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application.

현재로서는 리디렉션 등을 처리하기위한 서버 측 코드를 작성하지 않았습니다. 내가 한 것은 웹 사이트 용 Facebook 의 자습서를 기반으로 JavaScript SDK를 추가하는 것 뿐입니다 .

내가 뭘 잘못 했어? 분명히 내 Facebook 응용 프로그램 설정과 관련이 있지만 무엇을 볼 수 없습니다!


업데이트 :
이 API 오류 코드에 대답하기 위해 : (191) 사이트 URL과 동일 (또는 상대)해야한다.
redirect_uri
여기에 이미지 설명 입력

팁 : 특정 페이지를 가리키는 전체 URL 대신 기본 URL을 사용하십시오.

권장하지 않는 : 당신이 사용하는 경우, 예를 들어, www.mydomain.com/fb/test.html귀하의 사이트 URL로하고 필요 www.mydomain.com/fb/secondPage.htmlredirect_uri이것은 당신에게 191 오류를 줄 것이다.

권장 : 따라서 대신 사이트 URL을 다음과 같은 기본 URL로 설정하십시오. www.mydomain.com/OR www.mydomain.com/fb/.


오늘 Facebook Python 샘플 애플리케이션 을 살펴 보았는데 로컬에서 개발하는 경우 사이트 URL사용할 수 있다는 것이 분명하게 언급되어 충격을 받았습니다 .http://localhost:8080/

사이트 URL을 구성하고 웹 서버를 가리 킵니다. 로컬에서 개발하는 경우 http : // localhost : 8080 /을 사용할 수 있습니다 .

나는 동안 이었다 확실히 당신은 당신이 실제로 것으로 보인다 내 자신의 경험 (아주 오래된 테스트하지만)을 기반으로 할 수 없어 CAN 로컬 페이스 북 응용 프로그램을 테스트!

그래서 저는 오래된 응용 프로그램을 선택하여 이름, 사이트 URL 및 캔버스 URL : 사이트 URL을 편집했습니다. http://localhost:80/fblocal/

최신 Facebook PHP-SDK를 다운로드하여 xampp/htdocs/fblocal/폴더에 넣었습니다 .

하지만 당신과 같은 오류가 발생했습니다! 나는 것으로 나타났습니다 XAMPP가 에 자동 리디렉션을하고있다 http://localhost/fblocal/단순히로 설정을 변경 때문에 http://localhost/fblocal/에러가 사라졌다 하지만 내가 (에서 응용 프로그램을 제거해야 개인 정보 설정을 결과가) 여기에 내 응용 프로그램을 다시 설치 :
대체 텍스트

그 후 publish_stream권한을 요청 했고 내 프로필에 게시 할 수있었습니다 (PHP-SDK 사용).

$user = $facebook->getUser();
if ($user) {
    try {
        $post = $facebook->api('/me/feed', 'post', array('message'=>'Hello World, from localhost!'));
    } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}

결과 : 대체 텍스트


저에게는 앱 도메인이 누락되었습니다. 앱으로 이동하여 사이트의 루트가 앱 도메인으로 설정되어 있는지 확인하십시오. 스크린 샷을 참조하십시오.

앱 도메인은 앱의 기본 설정에 있습니다.


URL 오류 때문입니다.

지정된 웹 사이트 URL은 정확해야합니다.

나는 웹 사이트 URL을 http://localhost:3000/localhost , 도메인을 localhost 로 언급 했지만 내 브라우저에서는 http://0.0.0.0:3000/.

localhost:3000문제가 해결되면서 서버를 실행 했습니다.

앞서 언급했듯이 localhost Facebook과 같은 사이트 URL은 동일한 URL로 리디렉션됩니다.를 실행 0.0.0.0:3000하면 "Given URL is not allowed by the Application configuration"이라는 오류가 발생합니다.


I was also facing the same problem when I am using the facebook authentication method. But I rectify that issue with following changes in Facebook api (Apps >> My App >> Basic).

  1. I removed the url which i have given in ===> App on Facebook (Canvas URLs)
  2. I gave site url only in ===> Website with Facebook Login option

Then i gave that AppId and App Secret in my webpage.

So by clicking on login button, It ask for access permissions then it redirect it to give url (Website with Facebook Login ).


Had the same problem:

$params = array('redirect_uri' => 'facebook.com/pages/foobar-dev');
$facebook->getLoginUrl($params);

When I changed the redirect_uri from the devloper page to the live page, 191 Error came up.

So I deleted the $params:

$facebook->getLoginUrl();

After the app-request now FB redirects to the app url itself f.e.: my.domain.com

What I do now is checking in index.php of my app if I'm inside FB iframe or not. If not I redirect to the live FB page f.e.:

$app = 'facebook.com/pages/foobar-live';
$rd = (isset($_SERVER['HTTP_REFERER'])) ? parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) : false;
if ($rd == 'apps.facebook.com' || (!isset($_REQUEST['signed_request'])))  {
    echo '<script>window.parent.location = "'.$app.'";</script>';
    die();
}

I have noticed also that even if you specify your website under secion - Website With Facebook Login -> Site url as e.g. http://example.com, but if your App Domains section is empty, and you open website as www.example.com you will get this error, too. To avoid it in "App Domains" section write example.com, that will allow subdomains, like www.example.com, something.example.com etc


in the facebook App Page, goto the basic tab. find "Website with Facebook Login" Option.

you will find Site URL: input there put the full URL ( for example http://Mywebsite.com/MyLogin.aspx ). this is the URL you can use with the call like If the APP ID is 123456789

https://graph.facebook.com/oauth/authorize?client_id=123456789&redirect_uri=http://Mywebsite/MyLogin.aspx&scope=publish_actions


Something I'd like to add, since this is error 191 first question on google:

When redirecting to facebook instead of your own site for a signed request, you might experience this error if the user has secure browsing on and your app does redirect to facebook without SSL.


Working locally... I couldn't get the feeds api to work, but the share api worked pretty much straight away with no problems.


I fixed this by passing the redirect url to the FacebookRedirectLoginHelper::getAccessToken() in my callback function:

Changing from

try {
        $accessToken = $helper->getAccessToken();
}
...

to

try {
        $accessToken = $helper->getAccessToken($fbRedirectUrl);
}
...

방랑자 상자에서 개발 중이며 FacebookRedirectLoginHelper::getCurrentUrl()유효한 URL을 생성하는 데 문제가있는 것 같습니다 .

참고 URL : https://stackoverflow.com/questions/4691782/facebook-api-error-191

반응형