Menu

DNN 7.4.1 versus Facebook API v2.4

Se ha descubierto que  última versión estable de DNN 7.4.1 no permite la validación de usuarios tras la reciente actualización de la API de facebook a la versión 2.4, desde DNN se nos confirma que esta incidencia será resuelta para la próxima versión DNN 8, pero ¿Y que hacemos los que queremos añadir a nuestra aplicación la conexión con esta red social ahora? Pues leer este artículo.

Para empezar cabe aclarar que aquellos que tuvieran su aplicación de facebook configurada previamente al upgrade, no notarán ninguna diferencia ya que por defecto facebook no actualiza las aplicaciones de sus clientes a la nueva versión de su API (¡y menos mal!) pero, por el contrario, si que obliga a que todas las aplicaciones de nueva creación utilicen la susodicha, por lo que cualquier nueva instalación que se lleve a cabo bajo DNN 7.4.1 sufrirá este problema.

Pero ¿Y por qué pasa esto?

Muy sencillo, como el desarrollador Microsoftero Spyros Samartzis nos explica en este post, la llamada a la API a partir de la versión 2.4 sumado a la configuración de DNN no nos devuelve todos los datos necesarios para validar a un usuario sino solamente el nombre y el id.

Ahora toca arreglarlo

Tenemos dos opciones inmediatas para solucionar este fallo una para la versión de DNN 7.4.1 y otra para las versiones DNN 7.4.1(280) y 7.4.2 (BETA):

- Para solucionar este fallo en la versión de DNN 7.4.1 solo tendremos que copiar en nuestra carpeta bin las dll modificadas para que los campos necesarios sean requeridos específicamente por la llamada a la API. Las DLL podéis descargarlas del siguiente enlace.

- Si usamos DNN 7.4.1(280) la opción más "sencilla" es hacer un update a DNN 7.4.2 ya que este incluye los cambios en la clase OAuthClientBase necesarios, de esta forma solo tendremos que instalar DotNetNuke.Authentication.Facebook.dll en la carpeta bin. Hecho esto has de recordar que aunque actualices DNN el Authentication Provider no será actualizado, así que toca hacerlo a mano desde Hosts > Extensions > Authentication Providers.

De esta forma hemos conseguido que nuestro login o registro vía facebook continúe funcionando sin necesidad de acceder al código. Si no puedes permitirte actualizar a 7.4.2 y quieres aventurarte a modificar los .cs implicados y recompilarlos te aconsejo que leas detenidamente las respuestas a la incidencia en dnntracker https://dnntracker.atlassian.net/browse/DNN-7446.