wake-up-neo.net

Facebook-API-Fehler 191

Ich versuche mein Projekt mit Facebook zu integrieren. Zuerst mache ich kleine Schritte und versuche nur, sich anzumelden, eine Facebook-Sitzung zu erhalten und Benutzerdaten zu erhalten. Ich entwickle es lokal, so dass meine Facebook-Anwendungseinstellungen folgende sind:

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

Die Canvas-URL ist dieselbe wie oben. Ich habe keine Site-Domain angegeben. 

Wenn ich jedoch auf den Login-Button klicke, erhalte ich 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 noch keinen serverseitigen Code für Umleitungen usw. geschrieben. Alles, was ich getan habe, ist das JavaScript SDK basierend auf dem Tutorial in Facebook für Websites.

Was habe ich falsch gemacht? Es ist natürlich etwas mit meinen Facebook-Anwendungseinstellungen zu tun, aber ich kann nicht sehen, was!

76
musoNic80

UPDATE:
So beantworten Sie den API-Fehlercode: 191
Der _redirect_uri_ sollte gleich (oder relativ) zur Site-URL sein.
enter image description here

Tipp: Verwenden Sie Basis-URLs anstelle vollständiger URLs, die auf bestimmte Seiten verweisen.

NICHT EMPFOHLEN: Wenn Sie beispielsweise _www.mydomain.com/fb/test.html_ als Site-URL verwenden und _www.mydomain.com/fb/secondPage.html_ als _redirect_uri_ haben, erhalten Sie den Fehler 191 .

EMPFOHLEN: Stellen Sie Ihre Site-URL stattdessen auf eine Basis-URL wie folgt ein: _www.mydomain.com/_ OR _www.mydomain.com/fb/_.


Ich habe heute die Facebook Python-Beispielanwendung durchgesehen und war geschockt es wurde deutlich, dass Sie _http://localhost:8080/_ als Site URL wenn Sie lokal entwickeln:

Konfigurieren Sie die Site-URL und verweisen Sie sie auf Ihren Webserver. Wenn Sie lokal entwickeln, können Sie http: // localhost: 8080 / verwenden

Obwohl ich sicher war , dass Sie das nicht können, scheint es, dass Sie tatsächlich KANN Ihre Facebook-Anwendung lokal testen!

Also nahm ich eine alte Anwendung von mir und bearbeitete deren Namen, Site-URL und Canvas-URL: Site-URL: _http://localhost:80/fblocal/_

Ich habe das neueste Facebook PHP-SDK heruntergeladen und es in meinen _xampp/htdocs/fblocal/_ Ordner geworfen.

Aber ich habe den gleichen Fehler wie du! Mir ist aufgefallen, dass XAMPP eine automatische Umleitung zu _http://localhost/fblocal/_ ausführt, daher habe ich die Einstellung auf einfach _http://localhost/fblocal/_ geändert und der Fehler war weg BUT Ich musste die Anwendung entfernen (von Datenschutzeinstellungen ) und meine Anwendung erneut installieren. Hier sind die Ergebnisse:
alt text

Danach wurde ich um die Erlaubnis _publish_stream_ gebeten, und ich konnte in meinem Profil veröffentlichen (mit dem 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

88
ifaour

Für mich war es eine fehlende App-Domain. Gehen Sie in die App und stellen Sie sicher, dass der Stamm Ihrer Site als App-Domäne eingerichtet ist. Siehe Screenshot.

app domains is in the basic settings of your app

11
Mike_K

Dies liegt nur an einem URL-Fehler.

Die angegebene URL der Website sollte korrekt sein.

Ich erwähnte die Website-URL als http://localhost:3000/ Und Domäne als localhost, aber in meinem Browser habe ich http://0.0.0.0:3000/ ausgeführt.

Als ich Server als localhost:3000 lief, wurde das Problem gelöst.

Wie bereits erwähnt, wird die URL der Site als localhost Facebook auf dieselbe Website umgeleitet. Wenn wir 0.0.0.0:3000 ausführen, wird die Fehlermeldung angezeigt, dass "die angegebene URL nicht in der Anwendungskonfiguration zulässig ist".

8
devudilip

Das gleiche Problem hatte ich auch, wenn ich die Authentifizierungsmethode von Facebook verwende ... __ Aber ich behebe das Problem mit den folgenden Änderungen in Facebook api (Apps >> My App >> Basic).

  1. Ich habe die von mir angegebene URL entfernt ===> App auf Facebook (Canvas-URLs)
  2. Ich habe die Site-URL nur in ===> Website mit Facebook Login Option angegeben

Dann gab ich dieses AppId und App Secret auf meiner Webseite.

Wenn Sie auf den Login-Button klicken, werden Sie nach Zugriffsberechtigungen gefragt und dann umgeleitet, um die URL ( Website mit Facebook-Login ) anzugeben.

2
ShivarajRH

Vor Ort arbeiten ....__ Ich konnte die APIs für Feeds nicht zum Laufen bringen, aber die Share-API funktionierte ziemlich gut und ohne Probleme.

0
chim

Hatte das gleiche Problem:

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

Als ich redirect_uri von der devloper-Seite auf die Live-Seite änderte, erschien 191 Error.

Also habe ich die $ params gelöscht:

$facebook->getLoginUrl();

Nach dem App-Request leitet der FB nun zur App-URL selbst weiter, zB: my.domain.com

Was ich jetzt mache, ist in der index.php meiner App zu überprüfen, ob ich in einem FB-iframe bin oder nicht. Wenn nicht, leite ich zur Live-FB-Seite weiter:

$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
ggzone

Ich möchte etwas hinzufügen, da es sich bei der ersten Frage von Fehler 191 um Google handelt:

Wenn Sie für eine signierte Anfrage an Facebook statt an Ihre eigene Website umleiten, kann dieser Fehler auftreten, wenn der Benutzer sicher surft und Ihre App ohne SSL an Facebook weiterleitet.

0
Barnaba

gehen Sie auf der Facebook-App-Seite zur Grundregisterkarte. Finden Sie die Option "Website mit Facebook Login".

sie finden die URL der Site: Geben Sie dort die vollständige URL ein (z. B. http://Mywebsite.com/MyLogin.aspx ). Dies ist die URL, die Sie mit dem Anruf verwenden können, z. B. Wenn die APP-ID 123456789 ist

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

0
Partha

Ich habe auch bemerkt, dass, auch wenn Sie Ihre Website unter secion - Website mit Facebook-Login -> Site-URL wie z. http://example.com , aber wenn Ihr Bereich für App-Domains leer ist und Sie die Website als www.example.com öffnen, wird diese Fehlermeldung ebenfalls angezeigt. Um dies in "App Domains" zu vermeiden, schreiben Sie example.com. Dies erlaubt Subdomains wie www.example.com, Etwas.example.com usw 

0
dav

Ich habe dies behoben, indem ich die Weiterleitungs-URL in meiner Callback-Funktion an FacebookRedirectLoginHelper::getAccessToken() übergeben habe:

Ändern von 

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

zu

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

Ich entwickle eine Vagrant-Box und es scheint, dass FacebookRedirectLoginHelper::getCurrentUrl() Probleme mit der Generierung einer gültigen URL hatte. 

0
Kyrre