Błąd interfejsu API Facebook 191

Staram się zintegrować mój projekt z Facebook. Na początku robię małe kroki i próbuję się zalogować, zrobić sesję na Facebook ' u i zdobyć dane użytkownika. Rozwijam go lokalnie, więc moje ustawienia aplikacji Facebook to:

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

Adres URL płótna jest taki sam jak powyżej. Nie podałem domeny strony.

Jednak po kliknięciu przycisku logowania pojawia się błąd:

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.

W tej chwili nie napisałem żadnego kodu po stronie serwera, aby poradzić sobie z przekierowaniami itp. Wszystkie Zrobiłem to dodać JavaScript SDK na podstawie samouczka w Facebook dla stron internetowych.

Co zrobiłem źle? To oczywiście ma coś wspólnego z ustawieniami aplikacji Facebook, ale nie widzę co!
Author: Laurel, 2011-01-14

10 answers

UPDATE:
Aby odpowiedzieć na kod błędu API: 191
redirect_uri powinien być równy (lub względny) adresowi URL witryny.
Tutaj wpisz opis obrazka

Wskazówka: używaj bazowych adresów URL zamiast pełnych adresów URL kierujących do konkretnych stron.

Nie zaleca się: na przykład, jeśli używasz www.mydomain.com/fb/test.html jako adresu URL witryny i masz www.mydomain.com/fb/secondPage.html jako redirect_uri, spowoduje to błąd 191.

Zalecane: więc zamiast tego ustaw adres URL witryny na podstawowy adres URL, taki jak: www.mydomain.com/ lub www.mydomain.com/fb/.


Przejrzałem dzisiaj Facebook przykładową aplikację Pythona i byłem zszokowany wyraźnie stwierdzałem, że możesz używać http://localhost:8080/ jako URL strony jeśli rozwijasz się lokalnie:

Skonfiguruj adres URL strony i wskaż go na Twój serwer WWW. Jeśli jesteś rozwijając się lokalnie, można wykorzystać http://localhost:8080/

Podczas gdy ja byłem na pewno nie możesz tego zrobić, bazując na moim własnym doświadczeniu (bardzo starym test chociaż) wydaje się, że faktycznie CAN przetestuj swoją aplikację Facebook lokalnie!

Więc podniosłem swoją starą aplikację i edytowałem jej nazwę, adres URL witryny i adres płótna: URL strony: http://localhost:80/fblocal/

Pobrałem najnowszy Facebook PHP-SDK i wrzuciłem go do mojego folderu xampp/htdocs/fblocal/.

Ale mam ten sam błąd co twój! Zauważyłem, że XAMPP robi automatyczne przekierowanie na http://localhost/fblocal/ więc zmieniłem ustawienie na po prostu http://localhost/fblocal/ i błąd zniknął ale musiałem usunąć aplikację (z ustawienia prywatności ) i ponownie zainstalować aplikację i oto wyniki:
alt text

Po tym, poprosiłem o pozwolenie publish_stream i byłem w stanie opublikować na moim profilu (za pomocą 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;
    }
}

Wyniki: alt text

 87
Author: ifaour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-22 09:04:27

Dla mnie to była brakująca domena aplikacji. Przejdź do aplikacji i upewnij się, że główny katalog witryny jest skonfigurowany jako domena aplikacji. Zobacz zrzut ekranu.

domeny aplikacji znajdują się w podstawowych ustawieniach Twojej aplikacji

 11
Author: Mike_K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-23 16:47:44

Jest to spowodowane błędem adresu URL.

Niezależnie od adresu URL strony internetowej powinien być poprawny.

Wymieniłem adres URL strony jako http://localhost:3000/ i domeny jako localhost, ale w przeglądarce uruchamiałem http://0.0.0.0:3000/.

Kiedy uruchomiłem serwer jako {[2] } to rozwiązało problem.

Jak już wspomniałem, adres URL witryny jako localhost Facebook przekieruje na to samo, jeśli uruchomimy 0.0.0.0:3000, pojawi się błąd, że "podany adres URL nie jest dozwolony przez konfigurację aplikacji".

 8
Author: devudilip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-07 20:43:01

Miałem również do czynienia z tym samym problemem, gdy używam metody uwierzytelniania facebook. Ale poprawiłem ten problem z następującymi zmianami w Facebook api (Apps >> My App >> Basic).

  1. usunąłem url, który podałem w = = = > App on Facebook (Canvas URL)
  2. podałem url strony tylko w = = = > strona z możliwością logowania na Facebook

Potem dałem ten AppId i App Secret na mojej stronie internetowej.

Więc klikając na przycisk login, pyta o uprawnienia dostępu następnie przekierowuje go do podania adresu url (strona z loginem Facebook ).

 2
Author: ShivarajRH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-25 14:10:47

Miał ten sam problem:

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

Kiedy zmieniłem redirect_uri ze strony devloper na stronę live, pojawił się błąd 191.

Więc usunąłem $params:

$facebook->getLoginUrl();

Po aplikacji-request now FB przekierowuje na sam adres URL aplikacji np.: my.domain.com

Teraz sprawdzam indeks.php mojej aplikacji, jeśli jestem wewnątrz FB iframe, czy nie. Jeśli nie Przekierowuję na stronę live FB 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();
}
 0
Author: ggzone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-21 17:39:13

Zauważyłam też, że nawet jeśli podasz swoją stronę pod secion-strona z loginem Facebook - > URL strony jako np. http://example.com , ale jeśli sekcja domeny aplikacji jest pusta, a otwierasz stronę jako www.example.com ten błąd też dostaniesz. Aby tego uniknąć w sekcji" domeny aplikacji " napisz example.com, które pozwolą subdomenom, jak www.example.com, something.example.com etc

 0
Author: dav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-05 13:42:13

Na Stronie aplikacji facebook, przejdź do zakładki basic. znajdź opcję "strona z Facebook Login".

Znajdziesz URL strony: input tam umieścić pełny URL (na przykład http://Mywebsite.com/MyLogin.aspx ). jest to adres URL, którego możesz użyć podczas połączenia, np. jeśli identyfikator aplikacji to 123456789

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

 0
Author: Partha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-28 19:47:40

Coś chciałbym dodać, ponieważ jest to błąd 191 pierwsze pytanie w google:

Facebook facebook zamiast własnej witryny dla podpisanego żądania może wystąpić ten błąd, jeśli użytkownik ma włączone Bezpieczne przeglądanie, a Twoja aplikacja przekierowuje do Facebooka bez protokołu SSL.
 0
Author: Barnaba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-05 16:15:13

Praca lokalnie... Nie mogłem uruchomić API feedów, ale API share działało praktycznie od razu bez żadnych problemów.

 0
Author: chim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-08 09:44:11

Naprawiłem to przekazując adres URL przekierowania do FacebookRedirectLoginHelper::getAccessToken() w mojej funkcji zwrotnej:

Zmiana z

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

Do

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

Rozwijam się na skrzynce vagrant i wydaje się, że FacebookRedirectLoginHelper::getCurrentUrl() miały problemy z generowaniem poprawnego adresu url.

 0
Author: Kyrre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-11 09:40:33