java - Inicio de sesión de Facebook: No se puede cargar la URL El dominio de esta URL no está incluido en los dominios de la aplicación
facebook-graph-api oauth (5)
Establecer no: usar el modo estricto para redirigir los URI
También mantenga URI de redireccionamiento de OAuth válido: igual que su URL principal
Sé que muchas de esas preguntas ya se han hecho muchas veces, luego de publicar la pregunta. Mi problema sigue sin resolverse.
Tengo una aplicación web donde incrusté el inicio de sesión de Facebook mediante la autenticación de Oauth. Usé el siguiente código para ayudar a Facebook a iniciar sesión con Java
Hasta el mes pasado funcionaba bien, pero desde pocos días seguimos recibiendo el error:
No se puede cargar la URL El dominio de esta URL no está incluido en los dominios de la aplicación. Para poder cargar esta URL, agregue todos los dominios y subdominios de su aplicación al campo Dominios de la aplicación en la configuración de su aplicación.
**Setting used are following:-
Website url : **https://www.enggheads.com/**
App Domain : **enggheads.com**
Redirect uri :
1. https://www.enggheads.com/#!login
2. https://www.enggheads.com/#!signup**
Capturas de pantalla
Entonces, solo quiero saber cuál es el problema por qué me enfrento a este problema. ¿Hay algo que me falta en la sección de configuración?
ACTUALIZAR
Código de flujos:
Paso 1. En el botón de clic url llamado --->
"http://www.facebook.com/dialog/oauth?" + "client_id="
+ FB_APP_ID + "&redirect_uri="
+ URLEncoder.encode(REDIRECT_URI, "UTF-8")
+ "&scope=public_profile ";
Recibo un error en esta parte donde se da el error No se puede cargar la URL El dominio de esta URL no está incluido en los dominios de la aplicación. Para poder cargar esta URL, agregue todos los dominios y subdominios de su aplicación al campo Dominios de la aplicación en la configuración de su aplicación.
Mi problema fue que no especifiqué redirect_uri
que es obligatorio si el usuario no ha iniciado sesión con Facebook.
Quiero compartir 2 formas de hacer solución. Espero que resuelva tu problema.
Solución 1:
Facebook ahora tiene algunas funciones como complementos. En el lado izquierdo, seleccione Productos y agregue producto. A continuación, seleccione Facbook Login. A partir de ahí, verá que aparecen todas las opciones de Oauth.
O,
Seleccione Productos y agregue producto. A continuación, seleccione Facbook Login.
Luego se agregó http://localhost:3000/ al campo ''Valid OAuth redirect URIs''
, y luego todo funcionó.
Solución-2:
Generalmente sucede si ha ingresado los detalles incorrectos cuando creó la aplicación en Facebook. ¿O ha cambiado una URL de una aplicación existente?
¿Puede volver a verificar la configuración de su aplicación en esta página?
https://developers.facebook.com/apps
- Seleccione la aplicación correcta y haga clic en el botón editar;
- Verifique que las URL y las rutas se hayan ingresado correctamente y estén apuntando al sitio donde ha instalado el complemento Ultimate de Facebook.
El crédito es para Lei Lionel.
ACTUALIZACIÓN1:
Creo que tu token de acceso ya expira . Así que necesitas extender el token de acceso. Para esto, por favor vaya a través de este enlace:
- Extender el token de acceso a Facebook (hazlo 60 días al final)
- Caducidad y extensión de los tokens de acceso
Enlace de recursos:
- Generar un token de acceso "sin caducidad" para la página de Facebook
- ¿Caducan los tokens de acceso de Facebook Oauth 2.0?
ACTUALIZACIÓN2:
Solo quiero preguntar 1 cosa más. ¿Es posible que el error del dominio de la aplicación tenga que ver con el tiempo de caducidad del token de acceso?
Respuesta:
Generación de tokens de usuarios de larga duración a partir de tokens de larga duración en el lado del servidor
Facebook tiene una opción avanzada para obtener tokens de acceso de larga duración para aplicaciones que:
- Tener su propio sistema de autenticación (usando un nombre de usuario / contraseña, por ejemplo)
- Almacene, en sus servidores, un token de acceso a Facebook para las personas que lo usan y lo envían a diferentes clientes (navegador o aplicaciones móviles nativas)
- Hacer llamadas a la API de todos esos clientes
Si su aplicación está configurada de esta manera, debe usar el proceso descrito aquí para obtener un token de acceso de cada cliente para evitar activar los sistemas automatizados de correo no deseado de Facebook. El resultado final será que cada cliente tendrá su propio token de acceso de larga duración.
En un nivel alto, así es como puede obtener un token de larga duración del cliente:
- Realice una llamada al servidor de Facebook desde su servidor con un token válido y actual de larga duración para generar un código. (Esto supone que ya ha obtenido un token de larga duración a través del inicio de sesión de Facebook. Si el token que está usando no es válido o está vencido, tendrá que obtener uno nuevo haciendo que la persona que usa su aplicación inicie sesión nuevamente).
- Enviar de forma segura ese código al cliente.
- El cliente luego intercambia el código por un token de larga duración.
- El cliente puede usar el token de larga duración para publicar historias o consultar datos.
Obteniendo el codigo
Con un token de acceso de usuario de larga duración, realice una llamada al siguiente punto final:
https://graph.facebook.com/oauth/client_code?access_token=...&client_secret=...&redirect_uri=...&client_id=...
Necesitas dar entrada: access_token, client_secret, redirect_uri and client_id.
La respuesta será:
La respuesta se verá algo como:
{"code": "...."}
Redimiendo el código para un token de acceso
Una vez que haya recuperado el código del servidor de Facebook, deberá enviarlo al cliente a través de un canal seguro. Una vez hecho esto, debe realizar una solicitud del cliente a este punto final:
https://graph.facebook.com/oauth/access_token?code=...&client_id=...&redirect_uri=...&machine_id= ...
La convocatoria requiere los siguientes argumentos:
client_id - si
código - si
redirect_uri - si
machine_id - No
La respuesta se verá como:
{"access_token":"...", "expires_in":..., "machine_id":"..."}
Si tiene parámetros de consulta dinámicos en su uri de redireccionamiento, esos deben ir en el parámetro de estado en la solicitud de autorización.
Para más detalles revisa mi answer a una publicación similar.
Tuve tantos problemas porque en la URL de redireccionamiento de out solo puse: - http://example.com/#/redirect-url mientras que también tuve que poner: - http://example.com
Incluso si solo quiero redirigir a / # / redirect-url. Tal vez los sitios ajax causen problemas.