2010-08-19 15 views
13

Intento utilizar FBGraph para permitir que mi aplicación publique mensajes en el muro de los usuarios. Sin embargo, todas las API son algo extraño para mí y solo estoy tratando de cambiar las cosas y ver qué pasa. En este momento, estoy recibiendo este mensaje de errorfacebook OpenGraph API on Rails (FBGraph)

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

¿Alguien sabe lo que significa redirect_uri? ¿Qué sería en mi página de Configuración de la aplicación en Facebook?

+0

Si usted proporciona un código que sería más fácil contestar. – serg

Respuesta

13

No soy un experto en Facebook, pero tuve el mismo problema que hace unas horas cuando intentaba iniciar sesión en un usuario dentro de una aplicación web con Facebook.

Parece que el redirect_uri que especifique en su llamada a "https://graph.facebook.com/oauth/authorize" debe estar en el mismo dominio que la URL de Connect de su aplicación. (Se puede establecer que la URL de conexión de la sección Connect en ajustes de su aplicación)

Saludos, Florin

+0

Si restringen la devolución de llamada, ¿por qué no permiten varias URL de conexión? Desearía que lo hicieran una lista manejable en lugar de un cuadro de texto de entrada única. – Kieveli

20

Florin es correcta. Sólo una nota aquí .. cuando se prueba de forma local tendrá que configurarlo para:

http://localhost:3000/ (o lo que su puerto del servidor de aplicación es)

Entonces cuando lo mueve a la producción, establecido como su dirección URL habitual:

http://yourdomain.com/

tengo una aplicación de Facebook separada que uso en el desarrollo de la prueba, por lo que no tiene que cambiar de ida y vuelta entre ellos y ajustar las teclas en un archivo de configuración, que tiene mi tokens para aplicaciones de desarrollo y producción.

De todos modos, parece que ya casi estás allí. Lo está regresando a la url de devolución de llamada al menos. Debería estar bien una vez que actualice la URL facebook_connect

+1

Imaginé esta solución y también me imaginé de alguna manera dejando las claves de desarrollo en una implementación de producción. – Kieveli

+0

Use un complemento para variables amplias de la aplicación por entorno. Pruebe mi complemento -> https://github.com/cowboycoded/yettings Esto le permitirá usar un archivo YAML similar a su database.yml y elegirá las claves/valores correctos dependiendo del entorno en el que inicie el servidor. – johnmcaliley

+6

No necesita dos configuraciones. Si configura el dominio de su sitio en sudominio.com, Facebook también permitirá la autenticación de cualquier subdominio. En su archivo de hosts local, puede agregar una entrada que mapee 127.0.0.1 a localhost.yourdomain.com. Luego, en su navegador utiliza http://localhost.yourdomain.com:{port}/ y todo funcionará bien. –

0

Simplemente verifique su 'ID de aplicación'. En mi caso, tuve ese problema porque estaba usando ID de mi otro proyecto en el que estaba trabajando. Bastante obvio, pero perdí algo de tiempo.

0

que tenía que asegurarse de que tuviera el alcance de allí también:

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

Plus que realmente necesita para asegurarse de que esperar un par de minutos, ya que toma tiempo para propagar ..

1

Es posible que deba verificar su configuración> Básico> Información básica> Dominio de la aplicación. Creo que el sombrero también se debe configurar correctamente para redirect_uri.

1

Tuve el mismo problema.

En mi caso, había configurado la URL del sitio en Facebook como: "http: // localhost: 3000", era una URL incorrecta para Facebook.

La razón es que la falta del/al final de la URL, por lo que la URL del sitio correcta debe ser: "http: // localhost: 3000 /"