composer - Hybridauth-PHP-Facebook devolvió una identificación de usuario no válida
hybridauth example (3)
Bueno, tenía hybridauth funcionando e ingresé correctamente usando Facebook desde hace 2 semanas, no cambié nada y esta mañana descubrí que no estaba funcionando. Traté de cambiar la aplicación de Facebook (identificación y clave secreta) a otra que también estaba funcionando antes, pero todavía está sucediendo lo mismo. También traté de ejecutar los ejemplos que vienen con hybridauth, y tampoco funcionan, por lo que sé que no es una configuración de mi parte, ni tampoco de la configuración de la aplicación de Facebook.
Esto es lo que me dice cuando intento iniciar sesión:
¡Error! Autentificación fallida El usuario ha cancelado la autenticación o el proveedor ha rechazado la conexión.
Mensaje de error original: ¡Error de autenticación! Facebook devolvió una identificación de usuario inválida.
- Puede estar sucediendo por algo relacionado con mi servidor?
- ¿Facebook ha realizado algún cambio en su API durante las últimas 24 horas?
- ¿Alguien ha experimentado algo similar?
ACTUALIZADO: lo tengo funcionando desde hace 1 semana, para que funcione, encontré otras personas con el mismo problema antes (hace menos de 1 mes), lo arreglaron hace 17 días actualizando el Facebook PHP SDK.
Aquí está el enlace a GitHub donde puede ver los cambios para solucionar este problema:
https://github.com/F21/hybridauth/commit/3b115ee3abb5afbf44c37082e63aa8b056bf550c
Con esto, logré que todo funcionara, pero ahora está ocurriendo el mismo error incluso con estos cambios (después de una semana de trabajo).
Se debe a api change of facebook api graphic, puede descargar la última versión de Hybridauth para Facebook https://github.com/hybridauth/hybridauth , actualmente la API de terceros no está disponible para Facebook, por lo que debe descargar facebook sdk y colocar bajo el directorio de terceros, puede descargarlo de https://github.com/facebook/php-graph-sdk .
Después de la descarga, es posible que deba configurar los archivos facebook auto carga de sdk.
Tal vez su configuración envía KEY en lugar de ID:
Ejemplo de Facebook:
"keys" => array ( "id" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )
Ejemplo de Twitter:
"keys" => array ( "key" => "PUT_YOURS_HERE", "secret" => "PUT_YOURS_HERE" )
Tuve un problema similar y creo que en mi caso encontré la solución y tal vez ayudaría a alguien más. (CURLOPT_CONNECTTIMEOUT)
El error HybridAuth (usuario no válido) es muy genérico, básicamente se ve si el curl devuelve algo y, si no, proporciona ese error, pero el motivo real no está visible en el mensaje de error.
Lo que terminé haciendo es descargar Facebook php sdk y usar el ejemplo predeterminado https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php
(Cambié las teclas de mi aplicación)
En ese momento, pude ver nuevos mensajes de error que no se mostraban antes cuando usaba HybridAuth
Error fatal de PHP: CurlException no capturada: 6: agotó el tiempo de búsqueda del nombre
Eso me apuntó a este artículo http://milkcodes.blogspot.com/2010/12/php-fatal-error-uncaught-curlexception.html que habla de aumentar el tiempo de espera de CURL en base_facebook.php que hice y ¡Voila! comenzó a trabajar de nuevo.
El problema subyacente en muchas publicaciones es que la conectividad CURL es la principal responsable de estos problemas (https, timeout, nslookup, etc.)
Una buena forma de resolverlo rápidamente es mantener un script de prueba con fb sdk a mano para la depuración.
en base_facebook.php alrededor de la línea 133
public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => ''facebook-php-3.2'',