studio sesion reglas inicio iniciar google con auth autenticacion android facebook-graph-api firebase facebook-authentication firebase-authentication

android - sesion - El inicio de sesión de Facebook ya no funciona desde que actualicé la aplicación de Firebase a la nueva consola(solo)



login facebook firebase android (1)

Tenía una aplicación que funcionaba con la función de inicio de sesión de Facebook y correo electrónico, ya que actualicé la consola de Firebase (solo que el SDK no se actualizó).

El lanzamiento de la aplicación antes de que Firebase 3.0 funcionara antes, pero ya no puede iniciar sesión / iniciar sesión en Facebook después de que la consola se haya actualizado.

Que he hecho:

1 - Actualizó la consola de Firebase

Debido a la actualización de la consola de Firebase y Facebook, también tuve que poner la devolución de llamada de Oauth en la aplicación de Facebook

2 - Pegué la devolución de llamada de Facebook OAuth de Firebase a la consola de Facebook (antes de que fuera nula) ` https ://xxx.firebaseapp.com/__/auth/handler` `

La excepción:

El oyente Auth de firebase activa un error de Firebase:

Credenciales de autenticación inválidas proporcionadas. y Facebook: {"providerErrorInfo": {"code": 400, "message": "Respuesta debug_token incorrecta de Facebook: {/" error / ": {/" message / ": /" (# 100) Debe proporcionar un token de acceso a la aplicación o un token de acceso de usuario que es propietario o desarrollador de la aplicación / ", /" tipo / ": /" OAuthException / ", /" code / ": 100, /" fbtrace_id / ": /" DG4lLRJHFBS / "}}"}}

El código FirebaseError:

En el código descompilado de FirebaseAndroidSdk, el objeto de error es:

0 = {java.util.LinkedHashMap$LinkedEntry@22680} "código" -> "INVALID_CREDENTIALS"

1 = {java.util.LinkedHashMap$LinkedEntry@22681} "mensaje" -> "Se proporcionaron credenciales de autenticación no válidas".

2 = {java.util.LinkedHashMap$LinkedEntry@22682} "detalles" -> "{" providerErrorInfo ": {" code ": 400," message ":" Respuesta debug_token incorrecta de Facebook: {/ "error /": { / "message /": / "(# 100) Debe proporcionar un token de acceso a la aplicación o un token de acceso de usuario que sea propietario o desarrollador de la aplicación /", / "tipo /": / "OAuthException /", / " code / ": 100, /" fbtrace_id / ": /" BtB3JF2qmku / "}}"}} "

con el código descompilado:

private void makeAuthenticationRequest(String urlPath, Map<String, String> params, AuthResultHandler handler) { final AuthenticationManager.AuthAttempt attempt = this.newAuthAttempt(handler); this.makeRequest(urlPath, HttpRequestType.GET, params, Collections.emptyMap(), new RequestHandler() { public void onResult(Map<String, Object> result) { Object errorResponse = result.get("error"); String token = (String)Utilities.getOrNull(result, "token", String.class); if(errorResponse == null && token != null) { if(!AuthenticationManager.this.attemptHasBeenPreempted(attempt)) { AuthenticationManager.this.authWithCredential(token, result, attempt); } } else { FirebaseError error = AuthenticationManager.this.decodeErrorResponse(errorResponse); AuthenticationManager.this.fireAuthErrorIfNotPreempted(error, attempt); } } public void onError(IOException e) { FirebaseError error = new FirebaseError(-24, "There was an exception while connecting to the authentication server: " + e.getLocalizedMessage()); AuthenticationManager.this.fireAuthErrorIfNotPreempted(error, attempt); } }); }

En el nivel AuthListener, el código firebaseError: -20

https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/FirebaseError.html

Las credenciales de autenticación especificadas no son válidas.

El código de error de Facebook:

código 400

No se encontró nada relevante aquí: https://developers.facebook.com/docs/graph-api/using-graph-api/#errors

El código para la autenticación:

public void authWithFirebase(final String provider, Map<String, String> options) { if (options.containsKey(AUTH_OPTIONS_ERROR)) { EventBus.getDefault().post(new MessageToDisplayEvent(options.get(AUTH_OPTIONS_ERROR), true)); } else { if (provider.equalsIgnoreCase(AUTH_PROVIDER_TWITTER)) { // if the provider is twitter, we must pass in additional options, so use the options endpoint ref.authWithOAuthToken(provider, options, new AuthResultHandler(provider)); } else { // if the provider is not twitter, we just need to pass in the oauth_token ref.authWithOAuthToken(provider, options.get(AUTH_OPTIONS_TOKEN), new AuthResultHandler(provider)); } } }

TOKEN Validez:

Desde el código anterior, el token se confirma como válido ya que:

https://graph.facebook.com/app?access_token=%7Byour_access_token%7D devolver un JSON válido

Y la herramienta Facebook AccessToken https://developers.facebook.com/tools/debug/accesstoken devuelve un TOKEN aún válido

Qué cambió desde el punto de vista del usuario:

Ahora, cuando hago clic en FacebookLoginButton, tengo un nuevo cuadro de diálogo que pregunta "conexión como% FacebookUserName", con 2 botones ("Desconectar" y "Cancelar")

Publiqué un informe de error en Firebase, pero incluso no sé si esto es Facebook o Firebase, cualquier ayuda, consejo para explorar una nueva solución de problemas es bienvenida.


En Facebook Developper Console, desactive la opción "la clave de la aplicación que está integrada en el cliente".

Para mí, esto cambió el comportamiento. Daré más información en cuanto obtengo de Firebase / Facebook

Aquí hay una captura de pantalla francesa para ayudarlo a configurar Facebook: