Configurar inicio de sesión en Facebook para Discourse

:exclamation: As of February 2023, Meta has implemented a business verification requirement when publishing new and existing apps.

:warning: Updating the Facebook app API or creating a new app will break existing logins. See troubleshooting at the bottom of this post for a solution.

Configuration

Go to developers.facebook.com/apps and …

  1. Login with the credentials of the account you want to connect to Discourse and follow the wizard.
    If you already have other apps instead of Get Started you will see the entry My Apps, then just click on :heavy_plus_sign: Add new app and follow the guide from step 1b

1a. Select Developer
 ![image|690x408,50%](upload://aps07RfPhmhHIHyMqO3RZkbnKaX.png) 
1b. Provide a name for the app, for example `Discourse Login` and click on <kbd>Next</kbd>.
 ![image|690x435,50%](upload://bqzuaZ5sdnGEdaWWtUqvv9zO6qU.png) 
1c. Click on <kbd>Add your first product</kbd>
 ![image|690x352](upload://8VWUUU5YYXsCVOC2GrhJb3bJbmj.png)
  1. Click Set Up below Facebook Login.
    firefox_2018-03-14_17-08-49

  2. From the menu on the left, exit Quickstart by clicking on Settings under Facebook Login

  3. Setup the Valid OAuth redirect URI field, entering https://discourse.example.com/auth/facebook/callback – obviously, replacing the domain with your site’s actual domain name and matching the HTTPS protocol. Remember that the HTTPS protocol is now mandatory for all URI redirects. Click Save Changes.
    Once completed, a successful setup should look like this in Products/Facebook Login/Settings:

  4. Navigate to Settings/Basic, enter your Discourse URL (https://discourse.example.com) in the App Domains field and also enter the URL for your Discourse site privacy policy and Terms of Service in the appropriate fields and also upload the icon of your site. (Mind that for your privacy and tos link to be verified, you should have a valid SSL certificate integrates, which is not self-signed. If the certificate is missing, or self-signed, you won’t be able to save your changes).
    If you have a company that does business in the European Union, you may want to fill in the Data Protection Officer Contact Information form before clicking on Save Changes.

    ⚠️ Facebook has changed this step to ask for extra information. We are currently working to determine what you need to provide; see recent replies. (November 2020)

    There is now a field for User Data Deletion information for GDPR compliance. Select “Data Deletion Instructions URL” from the dropdown and add a link to a page (such as https://discourse.example.com/tos#deletion) which contains a sentence like “Accounts on this site can be anonymized or deleted at the user’s request. Contact our @support group for details.”

  5. At the bottom of the page click on :heavy_plus_sign: Add Platform and select Website

  6. Enter your Discourse URL here, for example https://discourse.example.com and click Save Changes

  7. Click on the Status button to change your app from in development to public.


    The category you select does not matter.

    After a few seconds the button will become:
    firefox_2018-03-14_18-20-25

  8. In Discourse site settings, enter your Facebook app’s App ID and App Secret in the facebook app id and facebook app secret fields. You’ll also want to check off Enable Facebook authentication, requires facebook_app_id and facebook_app_secret

That’s it! Facebook login should work now. Be sure to test it from a “normal” Facebook account, not your developer account.

Troubleshooting

Hosted Customers

:discourse2: If you are a Discourse hosting customer, contact us via the email address on your site dashboard and we will be happy to assist. :+1: :slightly_smiling_face:

If you’re hosted by another provider you will need to contact them for any server-related tasks or issues.

Self-hosters

If the Facebook app API is updated, or the app ID/secret are changed, you’ll need to remove existing associations from your site before users can log in again. To remove this data, run the following:

cd /var/discourse
./launcher enter app
rails c
UserAssociatedAccount.where(provider_name: "facebook").delete_all

Last edited by @martin 2024-06-11T07:00:30Z

Check documentPerform check on document:
77 Me gusta

Creo que el proceso de configuración ha cambiado un poco con el cambio de marca a ‘Meta’. Aquí tienes una guía:

1a. Después de hacer clic en Nueva aplicación

Consumer parece ser la mejor opción, ya que ofrece un conjunto limitado de opciones con todo lo que necesitamos.

Al final - Acceso avanzado

Ahora parece que necesitas solicitar “Acceso avanzado” a la dirección de correo electrónico del usuario de Facebook. Esto pareció requerir solo unos pocos clics y se concedió automáticamente. Sin embargo, me costó un poco encontrarlo antes de que apareciera.

También parece que es necesario revisar el acceso en el próximo mes aproximadamente. En general, es mucho más engorroso que configurar las otras credenciales de OAuth.

6 Me gusta

Finalmente pude configurar el inicio de sesión de Facebook como método para que los usuarios se registren (mi aplicación original dejó de funcionar después de que Facebook actualizara su cumplimiento de GDPR). Para aquellos interesados, creen una aplicación completamente nueva en Facebook y, además de los pasos mencionados en la primera publicación, también necesitarán estos pasos en su página de desarrolladores de Facebook para su aplicación:

Revisión de la aplicaciónPermisos y características

  • public_profile → Haga clic en Obtener acceso avanzado → Siga las instrucciones
  • email → Haga clic en Obtener acceso avanzado → Siga las instrucciones

Ahora sus usuarios deberían poder registrarse usando Facebook y deberían recibir notificaciones por correo electrónico sobre las publicaciones a las que están suscritos.

3 Me gusta

He renunciado a la integración del inicio de sesión de Facebook. O son bots o no se toman el tiempo de leer. Es la segunda vez que mencionan que mi política de privacidad viola la de ellos. La primera vez pude resolverlo. Ahora el problema ha vuelto.

Su reacción después de que repetí que mi política de privacidad aborda perfectamente sus demandas.

Hola,

Gracias por contactarnos sobre tu aplicación.

La Política de Privacidad vinculada a tu aplicación debe cumplir con la Política de la Plataforma de Facebook 4.b:

Esta política establece que debes incluir todo lo siguiente:

  • Una explicación clara de qué datos estás recopilando y procesando (hecho)
  • El propósito para el cual estás recopilando y procesando esos datos (hecho)
  • Cómo los usuarios pueden solicitar la eliminación de esos datos (pendiente - eliminar la cuenta o el contenido no es similar a que el usuario pueda solicitar la eliminación de datos. Puedes cambiar tu frase para que cumpla con los Términos de la Plataforma 4.b)

Para obtener más información sobre los requisitos de nuestra Política de Privacidad, visita la sección cuatro de los Términos de la Plataforma de Facebook: https://developers.facebook.com/terms/dfc_platform_terms/.

Gracias por tu cooperación. Responde a este correo electrónico cuando tu aplicación se haya actualizado o si tienes alguna pregunta sobre esta solicitud.

Facebook

Mientras compartía una captura de pantalla donde se describe perfectamente cómo los usuarios pueden solicitar la eliminación de datos y qué tipo de datos son.


De todos modos, lo más importante que quiero saber ahora es esto. Las personas que usaron Facebook para iniciar sesión, ¿todavía pueden iniciar sesión con una combinación de nombre de usuario/contraseña? ¿O significa que he perdido a esos usuarios?

1 me gusta

si no establecieron una contraseña previamente, necesitarán solicitar un correo electrónico de restablecimiento, pero sí, pueden iniciar sesión con una contraseña. Acabamos de pasar por esto en nuestros foros y por la misma razón.

4 Me gusta

No hay ninguna sección de #eliminación en mis Términos de servicio predeterminados :frowning:

¿Qué contenido debo añadir si creo manualmente esa sección?

1 me gusta

Hice todo lo posible para actualizar nuestra política de privacidad para cumplir con sus comentarios: Privacy - TZM Forum

Al principio estuvo bien, luego, después de uno o dos meses, volvieron con las mismas quejas. Por alguna razón, ningún cambio fue suficiente, así que desactivaron la aplicación. La eliminé después, la vida es demasiado corta para discutir con Facebook (bots).

6 Me gusta

Durante su revisión anual, Facebook no puede cargar mi Discourse. Se quedan atascados en la pantalla de carga.
El foro funciona bien de mi lado y hay usuarios conectados.

(https://unicyclist.com).

Les dije que lo intentaran de nuevo, y me volvieron a decir que no podían cargar la página.

Así que…

amablemente solicitamos que nos proporcione un screencast que también incluya los siguientes elementos:

  1. El nombre de su aplicación, ID de aplicación e ícono de aplicación.

  2. Su flujo completo de inicio de sesión de Facebook (si ha implementado el inicio de sesión de Facebook, muestre a un usuario de la aplicación localizando el botón de inicio de sesión de Facebook).

  3. El flujo de creación de cuentas e inicio de sesión de su aplicación, si los usuarios de su aplicación pueden crear cuentas e iniciar sesión en su aplicación sin usar el inicio de sesión de Facebook.

  4. Por cada permiso al que su aplicación tiene acceso, muestre a un usuario de la aplicación accediendo a datos que requieren el permiso, así como lo que su aplicación hace con esos datos.

  5. Un flujo de inicio de sesión de Facebook que muestre lo que sucede cuando un usuario de la aplicación deniega un permiso que su aplicación solicita.

  6. La ubicación de su política de privacidad en su aplicación. Haga clic en el enlace a su política de privacidad para mostrar el contenido de su política.

  7. Contenido dentro de su aplicación.

  8. Complementos sociales, si los hay, y cómo se utilizan. Por ejemplo, dar “me gusta” o seguir páginas, compartir contenido en Facebook o invitar o etiquetar amigos. Si su aplicación está disponible en diferentes plataformas (Connect, iOS, Android, Canvas…), asegúrese de mostrar toda la información anterior para las plataformas enumeradas.

Meta es tan difícil de tratar que podría simplemente eliminar todas sus funciones de mis foros, que son los inicios de sesión de Facebook y los iframes incrustados de Instagram (un poco raros) (echo de menos los antiguos oneboxes).
Ni siquiera puedo tener vistas previas de enlaces de Facebook publicados dentro de temas (tal vez debido a esta cosa irresoluble).

No estoy seguro de que estas funciones valgan la pena.


Editar: un amigo que administra un foro de Discourse recibió el mismo correo electrónico de Facebook y se preguntó cuántos de sus usuarios realmente tenían una cuenta de Facebook vinculada.
Puede usar estas consultas en el explorador de datos para obtener el número de usuarios que publicaron al menos una vez durante el último año y que tienen una cuenta de Facebook vinculada:

SELECT count(*)
FROM users
LEFT JOIN user_associated_accounts ON user_id = users.id
WHERE last_posted_at > now() - '1 year'::interval
AND provider_name = 'facebook'

Si desea comparar con todos los usuarios:

SELECT count(*)
FROM users
WHERE last_posted_at > now() - '1 year'::interval

Desde mi foro, 411 usuarios publicaron al menos una vez en el último año, y 30 de ellos tienen una cuenta de Facebook vinculada. Eso no significa que la usen, sin embargo.


Editar: ya está hecho, he deshabilitado las funciones de Facebook de mis foros. Pensé que tal vez era una pérdida, pero anunciarlo me dio muchos “me gusta” :laughing:. Parece que a mis comunidades no les gusta particularmente Facebook después de todo…

6 Me gusta

Después de cambiar mi servidor de foro, mis usuarios y yo no podemos usar el inicio de sesión de Facebook para ingresar a speech, aparece el siguiente error:

Lo sentimos, hubo un error al autorizar tu cuenta. Inténtalo de nuevo.

¿Alguien sabe por qué y cómo solucionarlo?

¿Tienes la misma URL para tu foro?

1 me gusta

Llegué hasta el paso “Go Public” y, de repente…

Se requiere verificación comercial para publicar

Antes de poder publicar, un administrador de la aplicación debe completar la verificación comercial. Una vez que su cuenta comercial haya sido verificada, puede volver a esta página y publicar. Más información sobre la verificación comercial.

La verificación comercial está inalcanzable en mi caso, porque no tengo un negocio legalmente constituido:

Busqué en Google y descubrí que este cambio tuvo lugar hace solo 3 meses, es decir, febrero de 2023:

Supongo que estoy arruinado permanentemente. Olvídate del inicio de sesión de Facebook para mí. Los sitios web pequeños e informales ahora están prohibidos en el patio de recreo. :neutral_face: :disappointed:

3 Me gusta

Aquí hay más información sobre el bloqueo que encontré.

Documentación de la Graph API:

email

Este permiso o función solo está disponible con la verificación del negocio.

public_profile

Este permiso o función solo está disponible con la verificación del negocio.

2 Me gusta

Recibí un correo electrónico de desarrollador de Facebook diciendo que perderé el acceso a mi aplicación (que se usa para el inicio de sesión de FB y la integración de Instagram, hasta donde sé) a menos que complete la verificación comercial.

Mi instancia es solo un pasatiempo y de ninguna manera gana lo suficiente como para ser justificada como un negocio. Solo me pregunto cómo planean abordar esto los demás.

3 Me gusta

¿Pedir a los usuarios que inicien sesión de otra manera? ¿Hornear unas galletas, llevárselas a la puerta de Mark Zuckerberg y ofrecérselas de rodillas?

En serio, creo que es el fin del camino. Nadie controla la API del sitio web de Facebook excepto Facebook. Este no es un problema que se pueda “resolver” con pensamiento creativo, o que se pueda sortear.

Siento ser portador de malas noticias :disappointed_face:

1 me gusta

Para aclarar, ¿hay alguna forma de usar Iniciar sesión con Facebook sin tener una empresa verificada?

Aclaración sobre esto: ¿significa esto que los datos del usuario se eliminarán y se creará un nuevo usuario para Discourse, o significa que el usuario deberá volver a autenticarse (proporcionar permisos para compartir información) a través de Facebook en el próximo inicio de sesión?

Para aclarar, ¿hay alguna forma de usar Iniciar sesión con Facebook sin tener una empresa verificada?

No, que yo sepa.

1 me gusta

¿Alguien más ha recibido este correo electrónico de Meta?

Parece que algunas personas se encontraron con esto el año pasado, así que tal vez sea mi turno ahora. No soy una empresa, así que ¿significa esto que tendré que eliminar el inicio de sesión a través de Meta en el futuro?

Completa la Revisión del Uso de Datos para X Community

Proteger la privacidad de las personas es una prioridad importante para Meta y los desarrolladores que crean en nuestra plataforma. Es por eso que requerimos una revisión anual para asegurarnos de que tu acceso a la API y el uso de datos cumplan con las políticas de Meta. Más información.

Esto es lo que debes hacer para X Community antes del 30 de mayo de 2024 para mantener el acceso a la API y evitar restricciones:

  1. Examina los permisos y funciones que aprobaste o agregaste previamente.
  2. Certifica que esta aplicación sigue el uso permitido.
  3. Certifica que sigues los Términos de la Plataforma Meta y las Políticas para Desarrolladores, junto con todos los demás términos y políticas aplicables.
  4. Responde preguntas sobre tus prácticas de manejo de datos. Obtén información sobre nuestras directrices de manejo de datos.

La Revisión del Uso de Datos es un requisito que debe ser completado una vez al año por un administrador de la aplicación.
Asegúrate de que cada aplicación esté conectada a una empresa verificada — esto es necesario para poder enviar la Revisión del Uso de Datos.

1 me gusta

Sí, significa exactamente eso.

Gracias, señor.

Ahora tendré que revisar qué necesito cambiar en la configuración. Siempre hay algo, ¿verdad? :grinning_face_with_smiling_eyes: