2010-08-19 10 views
13

Ich versuche FBGraph zu verwenden, um meine App Nachrichten auf der Benutzerwand veröffentlichen zu lassen. Allerdings sind mir alle APIs fremd und ich versuche nur, Dinge zu ändern und zu sehen, was passiert. Gerade jetzt, bekomme ich diese Fehlermeldungfacebook OpenGraph API auf Rails (FBGraph)

{ 
    "error": { 
     "type": "OAuthException", 
     "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration." 
    } 
} 

Weiß jemand, was es von redirect_uri bedeutet? Was wäre es auf meiner Seite "Anwendungseinstellungen" auf Facebook?

+0

Wenn Sie einen Code zur Verfügung stellen würde es einfacher sein, Antworten. – serg

Antwort

13

Ich bin kein Facebook-Experte, aber ich habe genau das gleiche Problem wie vor ein paar Stunden, als ich versuchte, einen Benutzer in einer Webanwendung mit Facebook anzumelden.

Es scheint, dass die redirect_uri, die Sie in Ihrem Anruf an "https://graph.facebook.com/oauth/authorize" angeben, in der gleichen Domäne wie die Connect URL Ihrer Anwendung sein muss. (Sie, dass connect URL aus dem Connect Abschnitt in den Einstellungen festlegen kann Ihre Anwendung)

Grüße, Florin

+0

Wenn sie den Rückruf einschränken, warum erlauben sie nicht mehrere Verbindungs-URLs? Ich wünschte, sie würden es zu einer überschaubaren Liste machen anstatt zu einem einzigen Eingabefeld. – Kieveli

20

Florin ist richtig. Nur eine Notiz hier .. wenn es lokal zu testen Sie es einstellen müssen:

http://localhost:3000/ (oder was auch immer Ihre App-Server-Port ist)

Dann, wenn Sie es bis zur Produktion bewegen, stellen Sie es auf Ihrem normalen URL:

http://yourdomain.com/

ich habe einen separaten Facebook-App, die ich in der Entwicklung verwenden, um zu testen, so habe mich nicht hin und her zwischen ihnen ändern und ich setzte die Schlüssel in einer Einstellungsdatei auf, die meine hat Token für Entwicklungs- und Produktions-Apps.

Wie auch immer, sieht aus, als ob Sie fast da sind. Es wird zumindest auf die Callback-URL zurückgesetzt. Sollte in Ordnung sein, sobald Sie die facebook_connect-URL aktualisieren

+1

Ich stellte mir diese Lösung vor und stellte mir auch vor, dass ich die Dev-Schlüssel irgendwie in einer Produktionsbereitstellung belassen würde. – Kieveli

+0

Verwenden Sie ein Plugin für anwendungsweite Variablen pro Umgebung. Probieren Sie mein Plugin -> https://github.com/cowboycoded/yettings Dies ermöglicht Ihnen, eine YAML-Datei ähnlich wie Ihre Datenbank.yml zu verwenden, und es wird die richtigen Schlüssel/Werte auswählen, abhängig davon, in welcher Umgebung Sie den Server starten. – johnmcaliley

+6

Sie benötigen keine zwei Konfigurationen. Wenn Sie Ihre Websitedomain auf yourdomain.com einstellen, erlaubt Facebook auch die Authentifizierung für beliebige Subdomains. In Ihrer lokalen hosts-Datei können Sie einen Eintrag hinzufügen, der 127.0.0.1 zu localhost.ihredomain.com zuordnet. Dann in Ihrem Browser verwenden Sie http://localhost.yourdomain.com:{port}/ und alles wird gut funktionieren. –

0

Überprüfen Sie einfach Ihre 'Application ID'. In meinem Fall hatte ich dieses Problem, weil ich ID von meinem anderen Projekt verwendete, an dem ich arbeitete. Ziemlich offensichtlich, aber ich habe etwas Zeit verloren.

0

musste ich sicherstellen, dass ich dort auch den Umfang hatte:

config.omniauth :facebook, 'xxxx', 'xxx', :scope => 'offline_access,email,publish_stream' 

Und Sie wirklich brauchen, um sicherzustellen, dass Sie ein paar Minuten warten, weil es an der Zeit ..

1

zu propagieren dauert Möglicherweise müssen Sie Ihre Einstellungen überprüfen> Basic> Basic Info> App Domain. Ich glaube, dass muss auch für die redirect_uri richtig gesetzt werden.

1

Ich hatte das gleiche Problem.

In meinem Fall hatte ich Website-URL auf Facebook als konfiguriert: "http: // localhost: 3000", es war eine falsche URL zu Facebook.

Der Grund dafür ist, es Mangel an den/am Ende der URL, so dass die richtige Website-URL sein sollte: „http: // localhost: 3000 /“