Configurar login do 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 curtidas

O processo de configuração disso mudou um pouco, acho que com a mudança de marca para ‘Meta’. Aqui está um guia:

1a. Após clicar em Novo Aplicativo

Consumer parece ser a melhor escolha, oferecendo um conjunto limitado de opções com tudo o que precisamos.

No final - Acesso Avançado

Agora parece que você precisa solicitar “Acesso Avançado” ao endereço de e-mail do usuário do Facebook. Isso pareceu exigir apenas alguns cliques e foi concedido automaticamente. No entanto, foi preciso um pouco de investigação para encontrá-lo antes que ele aparecesse.

Também parece haver a necessidade de revisar o acesso no próximo mês ou mais. Tudo somado, é muito mais complicado do que configurar os outros logins OAuth.

6 curtidas

Consegui configurar o login do Facebook como método para os usuários se inscreverem finalmente (meu aplicativo original parou de funcionar depois que o Facebook atualizou sua conformidade com o GDPR). Para aqueles interessados, crie um aplicativo totalmente novo no Facebook e, além das etapas mencionadas na primeira postagem, você também precisará destas etapas em sua página de desenvolvedores do Facebook para seu aplicativo:

Revisão do aplicativoPermissões e recursos

  • public_profile → Clique em Obter acesso avançado → Siga as instruções
  • email → Clique em Obter acesso avançado → Siga as instruções

Agora seus usuários devem conseguir se inscrever usando o Facebook e receber notificações por e-mail para posts inscritos também.

3 curtidas

Desisti da integração de login do Facebook. Ou são bots ou eles não perdem tempo lendo. É a segunda vez que eles levantam que minha política de privacidade viola a deles. Da primeira vez, consegui resolver. Agora o problema voltou.

A reação deles depois de eu repetir que minha política de privacidade atende perfeitamente às suas exigências.

Olá,

Obrigado por entrar em contato conosco sobre seu aplicativo.

A Política de Privacidade vinculada ao seu aplicativo deve cumprir a Política da Plataforma do Facebook 4.b:

Esta política afirma que você deve incluir tudo o seguinte:

  • Uma explicação clara sobre quais dados você está coletando e processando (feito)
  • O propósito para o qual você está coletando e processando esses dados (feito)
  • Como os usuários podem solicitar a exclusão desses dados (pendente - excluir conta ou conteúdo não é o mesmo que o usuário poder solicitar a exclusão de dados. Você pode alterar sua frase para tornar os Termos da Plataforma 4.b compatíveis)

Para mais informações sobre os requisitos da nossa Política de Privacidade, visite a seção quatro dos Termos da Plataforma do Facebook: https://developers.facebook.com/terms/dfc_platform_terms/.

Obrigado pela sua cooperação. Por favor, responda a este e-mail quando seu aplicativo for atualizado ou se tiver alguma dúvida sobre esta solicitação.

Facebook

Enquanto compartilho uma captura de tela que descreve perfeitamente como os usuários podem solicitar a remoção de dados e que tipo de dados são.


De qualquer forma, a coisa mais importante que quero saber agora é esta. As pessoas que usaram o Facebook para fazer login, elas ainda podem fazer login com uma combinação de nome de usuário/senha? Ou isso significa que perdi esses usuários?

1 curtida

se eles não definiram uma senha anteriormente, eles precisarão solicitar um e-mail de redefinição, mas sim, eles podem fazer login com uma senha. Acabamos de passar por isso em nossos fóruns e pelo mesmo motivo.

4 curtidas

Não há seção de #exclusão nos meus Padrões de Uso padrão :frown:

Que conteúdo devo adicionar se eu criar essa seção manualmente?

1 curtida

Fiz o meu melhor para atualizar nossa política de privacidade para cumprir os comentários deles: Privacy - TZM Forum

Estava tudo bem no início, então depois de um ou dois meses eles voltaram com as mesmas reclamações. Por alguma razão, nenhuma mudança foi suficiente, então eles desativaram o aplicativo. Eu o removi depois, a vida é muito curta para discutir com o Facebook (bots).

6 curtidas

Durante o check-up anual, o Facebook não carrega meu Discourse. Eles ficam presos na tela de carregamento.
O fórum funciona bem do meu lado e há usuários conectados.

(https://unicyclist.com).

Eu disse a eles para tentar novamente, e eles novamente me disseram que não conseguiam carregar a página.

Então, eles…

pedem gentilmente que você nos forneça um screencast que também inclua os seguintes itens:

  1. O nome do seu aplicativo, ID do aplicativo e ícone do aplicativo.

  2. Seu fluxo completo de Login do Facebook (se você implementou o Login do Facebook, mostre um usuário do aplicativo localizando o botão de Login do Facebook).

  3. O fluxo de criação de conta e login do seu aplicativo, se os usuários do seu aplicativo puderem criar contas e fazer login no seu aplicativo sem usar o Login do Facebook.

  4. Para cada permissão que seu aplicativo tem acesso, mostre um usuário do aplicativo acessando dados que exigem a permissão e o que seu aplicativo faz com esses dados.

  5. Um fluxo de Login do Facebook que mostra o que acontece quando um usuário do aplicativo nega uma permissão que seu aplicativo solicita.

  6. A localização da sua política de privacidade no seu aplicativo. Clique no link da sua política de privacidade para mostrar o conteúdo da sua política.

  7. Conteúdo dentro do seu aplicativo.

  8. Plugins sociais, se houver, e como eles estão sendo usados. Por exemplo, curtir ou seguir Páginas, compartilhar conteúdo no Facebook ou convidar ou marcar amigos. Se seu aplicativo estiver disponível em diferentes plataformas (Connect, iOS, Android, Canvas…), certifique-se de mostrar todas as informações acima para as plataformas listadas.

A Meta é tão difícil de trabalhar que posso simplesmente remover todos os recursos deles do meu(s) fórum(s), que são logins do Facebook e iframes incorporados do Instagram (um pouco instáveis) (sinto falta dos antigos oneboxes).
Eu nem consigo ter prévias de links do Facebook postados em tópicos (talvez por causa dessa coisa irresolúvel).

Não tenho certeza se esses recursos valem a pena.


Editar: um amigo que administra um fórum Discourse recebeu o mesmo e-mail do Facebook e se perguntou quantos de seus usuários realmente tinham uma conta do Facebook vinculada.
Você pode usar essas consultas no data explorer para obter o número de usuários que postaram pelo menos uma vez no último ano e que têm uma conta do 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'

Se você quiser comparar com todos os usuários:

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

Do meu fórum, 411 usuários postaram pelo menos uma vez no último ano, e 30 deles têm uma conta do Facebook vinculada. Isso não significa que eles a usam, porém.


Editar: está feito, desabilitei os recursos do Facebook dos meus fóruns. Pensei que talvez fosse uma perda, mas anunciá-lo me rendeu muitas curtidas :laughing:. Parece que minhas comunidades não são particularmente fãs do Facebook, afinal…

6 curtidas

Depois que alterei meu servidor de fórum, meus usuários e eu não conseguimos usar o login do Facebook para entrar no speech, o seguinte erro aparece

Desculpe, ocorreu um erro ao autorizar sua conta. Tente novamente.

alguém sabe o porquê e como consertar?

Você tem a mesma URL para o seu fórum?

1 curtida

Cheguei até a etapa “Go Public” e, de repente…

Verificação de empresa necessária para publicar

Antes de poder publicar, um administrador do aplicativo deve concluir a verificação da empresa. Assim que sua conta comercial for verificada, você poderá retornar a esta página e publicar. Saiba mais sobre a verificação de empresa.

A verificação de empresa está inalcançável no meu caso, pois não tenho uma empresa legalmente constituída:

Pesquisei e descobri que essa mudança ocorreu há apenas 3 meses, ou seja, em fevereiro de 2023:

Acho que estou permanentemente ferrado. Esqueça o login do Facebook para mim. Sites pequenos e informais foram simplesmente banidos do playground agora. :neutral_face: :disappointed:

3 curtidas

Aqui estão mais algumas informações sobre o bloqueio que encontrei.

Documentação da Graph API:

email

Esta permissão ou recurso está disponível apenas com a verificação da empresa.

public_profile

Esta permissão ou recurso está disponível apenas com a verificação da empresa.

2 curtidas

Recebi um e-mail do desenvolvedor do Facebook dizendo que perderei o acesso ao meu aplicativo (que é usado para login no FB e oneboxing do Instagram, tanto quanto sei) a menos que complete a verificação de negócios.

Minha instância é apenas um hobby e de forma alguma ganha o suficiente para ser justificada como um negócio. Só estou pensando em como mais alguém planeja lidar com isso?!?

3 curtidas

Diga aos usuários para fazerem login de outra forma? Assar alguns biscoitos, levá-los à porta de Mark Zuckerberg e oferecê-los de joelhos?

Falando sério, acho que é o fim da linha. Ninguém controla a API do site do Facebook, exceto o Facebook. Este não é um problema que possa ser “resolvido” com pensamento criativo ou contornado.

Desculpe dar más notícias :disappointed_face:

1 curtida

Para esclarecer, existe alguma forma de usar o Login com o Facebook sem ter uma empresa verificada?

Esclarecimento sobre isso: isso significa que os dados do usuário serão excluídos e um novo usuário será criado para o Discourse, ou significa que o usuário precisará se reautenticar (fornecer permissões para compartilhar informações) pelo Facebook no próximo login?

Então, para esclarecer, existe alguma maneira de usar o Login com o Facebook sem ter uma empresa verificada?

Não, pelo que sei.

1 curtida

Alguém mais recebeu este e-mail da Meta?

Parece que algumas pessoas encontraram isso no ano passado, então talvez seja a minha vez agora. Eu não sou uma empresa, então isso significa que terei que remover o login via Meta no futuro?

Conclua a Verificação de Uso de Dados para a Comunidade X

Proteger a privacidade das pessoas é uma prioridade importante para a Meta e para os desenvolvedores que criam em nossa plataforma. É por isso que exigimos uma verificação anual para garantir que seu acesso à API e o uso de dados estejam em conformidade com as políticas da Meta. Saiba mais.

Aqui está o que você precisa fazer para a Comunidade X antes de 30 de maio de 2024 para manter o acesso à API e evitar restrições:

  1. Examine suas permissões e recursos previamente aprovados ou adicionados.
  2. Certifique este aplicativo como seguindo o uso permitido.
  3. Certifique que você está seguindo os Termos da Plataforma Meta e as Políticas do Desenvolvedor, juntamente com todos os outros termos e políticas aplicáveis.
  4. Responda a perguntas sobre suas práticas de manuseio de dados. Saiba mais sobre nossas diretrizes de manuseio de dados.

A Verificação de Uso de Dados é um requisito que deve ser concluído uma vez por ano por um administrador do aplicativo.
Certifique-se de que cada aplicativo esteja conectado a uma empresa verificada — isso é necessário para enviar a Verificação de Uso de Dados.

1 curtida

Sim, significa exatamente isso.

Obrigado, senhor.

Agora terei que analisar o que preciso mudar na configuração. É sempre alguma coisa, não é? :grinning_face_with_smiling_eyes: