2012-11-27 8 views
6

Ich verwende Social-Auth mit meiner Django Web App. Wenn ich in der Produktionsumgebung zu/login/facebook gehe, kann der Benutzer sich mit seinen Facebook-Daten einloggen. Doch in meiner Entwicklungsumgebung, wenn ichWie kann man sich mit facebook in der Entwicklungsumgebung mit django social-auth einloggen?

http://localhost:8000/login/facebook/, 

Zugriff erhalte ich eine Fehlermeldung,

An error occurred. Please try again later. 

API Error Code: 191 
API Error Description: The specified URL is not owned by the application 
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration. 

Ich glaube, das liegt daran, dass die Domain ist localhost: 8000. Wie kann ich das beheben, damit ich mich in meiner Entwicklungsumgebung mit Facebook anmelden kann?

+1

Definieren Sie eine benutzerdefinierte Domain (ich verwende myapp.com), wenn die App in Facebook zu schaffen, dann fügen Sie es Ihrer '/ etc/hosts /' Datei 127,0 auf Ihrem lokalen Host 'zeigen. 0.1 myapp.com'. Das wird den Trick – omab

+0

Ich bin nicht vertraut, wie Sie die Domäne zu/etc/hosts/hinzufügen. Gibt es einen guten Link/ein Tutorial, das du empfehlen würdest? – sharataka

+0

'man hosts' hat alle grundlegenden Informationen, es ist nicht wirklich kompliziert, Sie fügen eine neue Zeile mit dem Format' 'hinzu. – omab

Antwort

2

Ich hatte gerade eine Antwort dafür beim Lesen der Heroku/Facebook Dokumentation gesehen.

Dazu müssen Sie eine zweite App erstellen und diese mit Ihrem lokalen Host verknüpfen, um sie lokal zu testen.

können Sie weitere Informationen darüber finden Sie hier: https://devcenter.heroku.com/articles/facebook#1-creating-a-development-facebook-app

+0

Ich habe die Facebook-App-Einstellungen als Site-URL konfiguriert: http://127.0.0.1:8000/. App-Domäne: (leer) Ich bin mir über die App-Domain nicht so sicher, weil ich in dem Link nichts darüber gesehen habe. Ist das korrekt? Wenn ich versuche, die App Domain zu speichern: http://127.0.0.1:8000/, erhalte ich die Fehlermeldung "App Domains: http://127.0.0.1:8000/" sollte keine Protokollinformationen enthalten. App Domains: http: //127.0.0.1:8000/ ist keine gültige Domain. " – sharataka

+0

Ich habe gerade eine App von mir zu http://127.0.0.1:8000 geändert und es funktioniert gut (es funktioniert nicht ohne http) – Robyflc

2

Die einfachste Lösung, die ich gefunden ist, die Hosts-Datei zu ändern Facebook Trick:

1/Bearbeiten Sie die Datei hosts

  • öffnen/etc/hosts
  • Und diese Zeile am Ende hinzufügen: 127.0.0.1 dev.mydomain.com

2/In der Facebook-Entwickler-Konsole (https://developers.facebook.com/apps/ *********)

  • Wählen Sie "Test-Apps"> "erstellen Sie einen Test-App"
  • In "Einstellungen"> "Basic" > Fügen Sie die Domäne (dev.mydomain.com) in das Feld "App Domains" ein.

Fertig!

cf: https://groups.google.com/forum/#!topic/django-social-auth/gB1D8ikgUwM

Verwandte Themen