Frage

Ich versuche, mein Projekt mit Facebook zu integrieren. Ich nehme Gehversuche auf den ersten und nur zu Login versuchen, erhalten eine Facebook-Sitzung und einige Benutzerdaten erhalten. Ich entwickle es lokal so meine Facebook-Anwendung Einstellungen sind:

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

Die Leinwand-URL ist das gleiche wie oben. Ich habe nicht eine Website-Domain angegeben.

Allerdings, wenn ich auf der Login-Schaltfläche klicken, ich erhalte eine Fehlermeldung:

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.

Im Moment habe ich keinen serverseitigen Code geschrieben mit Umleitungen beschäftigen, usw. Alles, was ich getan habe, ist den JavaScript-SDK hinzufügen, basierend auf dem Tutorial in Facebook für Websites .

Was habe ich falsch gemacht? Es ist offensichtlich etwas mit meinen Facebook-Anwendung Einstellungen zu tun, aber ich kann nicht sehen, was!

War es hilfreich?

Lösung

UPDATE:
Zur Beantwortung des API Fehlercode: 191
Die redirect_uri sollte gleich (oder relative) sein, um die Website-URL.
eingeben Bild Beschreibung hier

Tipp: Verwenden Sie Basis-URLs anstelle von vollständigen URLs auf bestimmte Seiten zeigen.

nicht empfohlen: Zum Beispiel, wenn Sie www.mydomain.com/fb/test.html als Ihre Website-URL verwenden und mit www.mydomain.com/fb/secondPage.html als redirect_uri dies werden Sie die 191 Fehler.

EMPFEHLUNGEN: So anstatt Ihre Website-URL-Gerät an eine Basis-URL haben wie:. www.mydomain.com/ OR www.mydomain.com/fb/


Ich ging durch die Facebook Python-Beispielanwendung heute, und ich war schockiert es wurde klar aussagen, dass Sie http://localhost:8080/ als Site URL , wenn Sie entwickeln sich lokal verwenden können:

Konfigurieren der Site URL, und es zeigen zu Ihrem Web-Server. Wenn du bist Entwicklung vor Ort, können Sie http: // localhost: 8080 /

Während ich lag bei sicher, können Sie das nicht tun, basierend auf meiner eigenen Erfahrung (sehr alte Test obwohl) scheint es, dass Sie tatsächlich CAN testen Sie Ihre Facebook-Anwendung lokal!

gepflückt Also habe ich eine alte Anwendung von mir und bearbeitet seinen Namen, Site URL und Canvas URL: Site URL: http://localhost:80/fblocal/

Ich habe den neuesten Facebook PHP-SDK und schleudert es in meinem xampp/htdocs/fblocal/ Ordner.

Aber ich habe die gleichen Fehler wie bei Ihnen! Ich bemerkte, dass XAMPP eine automatische Umleitung auf http://localhost/fblocal/ tut, damit ich die Einstellung einfach http://localhost/fblocal/ geändert und die Fehler waren verschwunden ABER ich hatte die Anwendung zu entfernen (von Datenschutzeinstellungen ) und meine Anwendung neu installieren und hier sind die Ergebnisse:
alt text

Danach wird für die publish_stream Erlaubnis gefragt, und ich konnte mein Profil veröffentlichen (mit der 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;
    }
}

Ergebnisse: alt text

Andere Tipps

Für mich war es eine fehlende Anwendungsdomäne. Gehen Sie in die App, und stellen Sie sicher, dass Sie die Wurzel Ihrer Website einrichten als App Domain haben. Screenshot.

app Domains ist in den Grundeinstellungen der App

Dies ist nur aufgrund einer URL Fehler.

Wie auch immer Website-URL angegeben wird, sollte korrekt sein.

Ich erwähnte Website-URL als http://localhost:3000/ und Domäne als localhost, aber in meinem Browser, ich hatte http://0.0.0.0:3000/.

Wenn ich Server als localhost:3000 lief löste es das Problem.

Wie bereits erwähnt, die Site-URL als localhost Facebook wird auf die gleiche umleiten, wenn wir laufen 0.0.0.0:3000, wird es Fehler steigen, dass „In Anbetracht URL nicht von der Anwendungskonfiguration erlaubt“.

Ich war auch mit Blick auf das gleiche Problem, wenn ich die Facebook-Authentifizierungsmethode verwenden. Aber ich dieses Problem beheben mit folgenden Änderungen in Facebook api (Apps >> My App >> Basic).

  1. Ich entfernte die URL, die ich in gegeben haben ===> App auf Facebook (Canvas URLs)
  2. Ich habe Website-URL nur in ===> Website mit Facebook Anmelden

Dann gab ich das AppId und App Geheimnis in meiner Webseite.

So, indem Sie auf Login-Button klicken, Sie bitten um Zugriffsberechtigungen dann umleiten URL zu geben ( Website mit Facebook Anmelden ).

Sie hat das gleiche Problem:

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

Als ich die redirect_uri von der Devloper Seite der Live-Seite geändert, kamen 191 Fehler auf.

Also habe ich die $ params gelöscht:

$facebook->getLoginUrl();

Nach der App-Anfrage jetzt FB Umleitungen an dem App-URL selbst f.e .: my.domain.com

Was ich jetzt tun, ist in index.php meiner App zu überprüfen, ob ich in FB iframe bin oder nicht. Wenn nicht umleiten ich auf die Live-FB-Seite 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();
}

Ich habe auch bemerkt, dass, auch wenn Sie Ihre Website unter secion angeben - Website mit Facebook Login -> Site url wie z.B. http://example.com , aber wenn Sie Ihre App Domains Abschnitt ist leer, und Sie öffnen Webseite als www.example.com Sie werden diese Fehler auch. Um zu vermeiden, es in "App Domains" Abschnitt Schreib example.com, dass Subdomains ermöglichen, wie www.example.com, something.example.com etc

in der Facebook-App Seite, gehe auf die Registerkarte Basis. finden "Website mit Facebook Login" Option.

finden Sie Site URL finden: Eingang gibt die vollständige URL setzen (zum Beispiel http://Mywebsite.com/MyLogin aspx ). Dies ist die URL, die Sie mit dem Aufruf verwenden können wie Wenn die APP-ID 123456789

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

Etwas Ich mag würde hinzufügen, da dieser Fehler 191 erste Frage auf Google ist:

Wenn anstelle von Ihrer eigenen Website für einen unterschriebenen Antrag auf facebook Umleitung, könnte diesen Fehler auftritt, wenn der Benutzer der sicheres Surfen hat auf und Ihre App tun Umleitung auf Facebook ohne SSL.

Arbeiten vor Ort ... Ich konnte nicht die Feeds api an der Arbeit, aber der Anteil api arbeitete so ziemlich sofort ohne Probleme.

Ich reparierte diese durch die Umleitung URL zum FacebookRedirectLoginHelper::getAccessToken() in meiner Callback-Funktion übergeben:

Der Wechsel von

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

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

ich auf einer vagabundierenden Box entwickle, und es scheint Probleme FacebookRedirectLoginHelper::getCurrentUrl() hatte eine gültige URL zu generieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top