Configure Facebook login for 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

「Meta」へのリブランディングで設定方法が少し変更されたと思います。以下に手順を示します。

1a. 新規アプリをクリックした後

Consumer が最良の選択肢のようです。必要なものがすべて揃った、わかりやすい限定的なオプションが提供されます。

最後 - 高度なアクセス

Facebookユーザーのメールアドレスへの「高度なアクセス」をリクエストする必要があるようです。これは数回のクリックで完了し、自動的に付与されました。しかし、表示されるまで見つけるのに少し手間がかかりました。

また、1か月以内にアクセスをレビューする必要もあるようです。全体として、他のOAuthログインを設定するよりも手間がかかります。

「いいね!」 6

ついにユーザーがサインアップする方法としてFacebookログインを設定できるようになりました(FacebookがGDPRコンプライアンスを更新した後、元のアプリが動作しなくなりました)。興味のある方は、Facebookでまったく新しいアプリを作成し、最初の投稿で説明した手順に加えて、アプリのFacebook開発者ページで次の手順も実行する必要があります。

App ReviewPermissions and Features

  • public_profileGet Advanced Access をクリック → 手順に従ってください
  • emailGet Advanced Access をクリック → 手順に従ってください

これで、ユーザーはFacebookを使用してサインアップできるようになり、購読した投稿のメール通知も受け取れるようになります。

「いいね!」 3

Facebookログイン連携は諦めました。ボットか、あるいは読解力がないかのどちらかです。私のプライバシーポリシーが彼らのポリシーに違反していると指摘されたのはこれで2度目です。前回は解決できましたが、今回は問題が再発しました。

私のプライバシーポリシーが彼らの要求を完全に満たしていると繰り返して伝えた後の彼らの反応は以下の通りです。

こんにちは、

アプリに関するお問い合わせありがとうございます。

アプリにリンクされているプライバシーポリシーは、Facebookプラットフォームポリシー4.bに準拠している必要があります。

このポリシーでは、以下のすべてを含める必要があると規定されています。

  • 収集および処理しているデータの明確な説明(完了済み)
  • そのデータを収集および処理する目的(完了済み)
  • ユーザーがデータの削除をリクエストする方法(保留中 - アカウントまたはコンテンツの削除は、ユーザーがデータ削除をリクエストできることとは異なります。プラットフォーム規約4.bに準拠するように文章を変更する必要があるかもしれません)

プライバシーポリシーの要件に関する詳細については、Facebookプラットフォーム規約のセクション4をご覧ください: https://developers.facebook.com/terms/dfc_platform_terms/

ご協力ありがとうございます。アプリが更新された場合、またはこのリクエストについてご質問がある場合は、このメールにご返信ください。

Facebook

ユーザーがデータの削除をリクエストする方法と、どのような種類のデータであるかを完全に説明したスクリーンショットを共有したにもかかわらずです。


とにかく、今一番知りたいのはこれです。Facebookでログインしていたユーザーは、ユーザー名/パスワードの組み合わせでログインできますか?それとも、これらのユーザーを失ったということでしょうか?

「いいね!」 1

以前にパスワードを設定していない場合は、リセットメールをリクエストする必要がありますが、はい、パスワードでログインできます。同じ理由で、フォーラムでまさにこれを行いました。

「いいね!」 4

デフォルトのTOS(利用規約)に#deletionセクションがありません:frowning:
セクションを手動で作成する場合、どのようなコンテンツを追加すべきですか?

「いいね!」 1

フォーラムのコメントに準拠するようにプライバシーポリシーを最善を尽くして更新しました。Privacy - TZM Forum

最初は問題ありませんでしたが、1〜2ヶ月後に同じ苦情が戻ってきました。どういうわけか、どのような変更も十分ではなかったため、アプリは無効化されました。その後、削除しました。Facebook(ボット)と議論するには人生は短すぎます。

「いいね!」 6

Facebookの年次審査中に、Discourseが読み込めなくなりました。読み込み画面で止まってしまいます。
フォーラムは私の側では正常に動作しており、接続中のユーザーもいます。

(https://unicyclist.com)。

もう一度試すように伝えたところ、やはりページを読み込めないとのことでした。

そのため、…

以下の項目を含むスクリーンキャストを提供していただくようお願いいたします。

  1. アプリ名、アプリID、アプリのアイコン。

  2. 完全なFacebookログインフロー(Facebookログインを実装している場合は、アプリユーザーがFacebookログインボタンを見つける様子を表示してください)。

  3. アプリのユーザーがFacebookログインを使用せずにアカウントを作成したりログインしたりできる場合は、そのアカウント作成とログインフロー。

  4. アプリがアクセスできる各権限について、権限を必要とするデータにアプリユーザーがアクセスする様子と、アプリがそのデータで何を行うかを示してください。

  5. アプリが要求する権限をアプリユーザーが拒否した場合に何が起こるかを示すFacebookログインフロー。

  6. アプリ内のプライバシーポリシーの場所。プライバシーポリシーへのリンクをクリックして、ポリシーの内容を表示してください。

  7. アプリ内のコンテンツ。

  8. ソーシャルプラグインがあれば、その使用方法。例えば、Facebookのページに「いいね!」したりフォローしたり、Facebookでコンテンツを共有したり、友達を招待またはタグ付けしたりすることです。アプリが複数のプラットフォーム(Connect、iOS、Android、Canvasなど)で利用可能な場合は、リストされているプラットフォームについて上記のすべての情報が表示されていることを確認してください。

Metaは非常に連携が難しいため、フォーラムからそれらの機能をすべて削除するかもしれません。FacebookログインとInstagram(少し不安定な)埋め込みiframeです(以前のoneboxが恋しいです[Desert MUNI Race Ridgercrest, Ca - #23 by jmadrigal - General - Unicyclist.com])。
トピック内に投稿されたFacebookリンクのプレビューさえできません(*おそらくこの解決不能なもののせいです)。
これらの機能は手間をかける価値があるのかわかりません。


編集:Discourseフォーラムを管理している友人がFacebookから同じメールを受け取り、Facebookアカウントを連携させているユーザーが実際に何人いるのか疑問に思っていました。
過去1年間で少なくとも1回投稿し、連携されたFacebookアカウントを持つユーザー数を取得するには、データエクスプローラーで次のクエリを使用できます。

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'

すべてのユーザーと比較したい場合:

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

私のフォーラムでは、過去1年間に少なくとも1回投稿したユーザーは411人で、そのうち30人が連携されたFacebookアカウントを持っています。ただし、それを使用しているとは限りません。


編集:完了しました。フォーラムからFacebook機能を無効にしました。失われたかもしれないと思いましたが、発表したところ多くの「いいね!」を得ました:laughing:。結局、私のコミュニティはFacebookを特に好んでいないようです…

「いいね!」 6

フォーラムサーバーを変更した後、ユーザーと私自身がFacebookログインを使用してスピーチに入ることができなくなりました。以下のエラーが表示されます。

申し訳ありませんが、アカウントの認証中にエラーが発生しました。もう一度お試しください。

誰か原因と修正方法を知っていますか?

フォーラムのURLは同じですか?

「いいね!」 1

「公開する」のステップまで進んだのですが、うまくいきませんでした…

公開するにはビジネス認証が必要です

公開するには、アプリ管理者がビジネス認証を完了する必要があります。ビジネスアカウントが認証されたら、このページに戻って公開できます。ビジネス認証の詳細はこちら。

私の場合は、法的に法人化された事業を行っていないため、ビジネス認証は絶望的に不可能です。

Googleで調べたところ、この変更はわずか3ヶ月前、つまり2023年2月に行われたことがわかりました。

もう永久に詰んだと思います。Facebookログインは私には無理です。小規模でインフォーマルなウェブサイトは、もうこの遊び場から追放されたようなものです。 :neutral_face: :disappointed:

「いいね!」 3

検問に関する追加情報はこちらです。

Graph API ドキュメント:

email

この権限または機能は、ビジネス認証済みの場合にのみ利用できます。

public_profile

この権限または機能は、ビジネス認証済みの場合にのみ利用できます。

「いいね!」 2

Facebook開発者から、アプリ(FBログインとインスタグラムのワンボクシングに使用されているとのこと)へのアクセスを失うことになるというメールを受け取りました。ビジネス認証を完了しないとアクセスできなくなるようです。

私のインスタンスは趣味で、ビジネスとして正当化できるほどの収益は全くありません。皆さんはどのようにこの問題に対処する予定か、ただ疑問に思っています。

「いいね!」 3

別の方法でログインするようにユーザーに伝えますか? クッキーを焼いて、マーク・ザッカーバーグのドアに持って行き、ひざまずいて提供しますか?

真面目な話、これは終点だと思います。FacebookのウェブサイトAPIを制御できるのはFacebookだけです。これは、創造的な思考で「解決」したり、技術的に回避したりできる問題ではありません。

悪いニュースを伝えるようで申し訳ありません :disappointed_face:

「いいね!」 1

確認ですが、承認済みのビジネスアカウントなしで「Facebookでログイン」を使用する方法はありますか?

これについての明確化ですが、これはユーザーデータが削除され、Discourse用に新しいユーザーが作成されるという意味でしょうか、それともユーザーが次のログイン時にFacebookで再認証(情報の共有許可の提供)を行う必要があるという意味でしょうか?

「確認のためですが、認証済みビジネスアカウントなしでFacebookログインを使用する方法はありますか?」

いいえ、私の知る限りではありません。

「いいね!」 1

Metaからこのメールを受け取った方はいらっしゃいますか?

昨年も同様の問題が発生したようですが、私もついにその時期が来たようです。私はビジネス目的で利用しているわけではありませんが、今後Metaでのサインインを削除する必要があるということでしょうか?

X Community のデータ使用状況確認を完了してください

Meta および当社のプラットフォーム上で開発を行う開発者にとって、人々のプライバシー保護は最優先事項です。そのため、年次の確認をお願いしており、APIアクセスとデータ使用がMetaのポリシーに準拠していることを確認しています。詳細はこちら。

APIアクセスを維持し、制限を回避するために、2024年5月30日までにX Communityで以下の対応を行ってください。

  1. 以前に承認または追加された権限と機能を確認します。
  2. このアプリが許可された使用方法に従っていることを証明します。
  3. Meta Platform Terms および Developer Policies、ならびに適用されるその他のすべての規約およびポリシーに従っていることを証明します。
  4. データ処理方法に関する質問に回答します。データ処理ガイドラインについて。

データ使用状況確認は、アプリ管理者が年に1回完了する必要がある要件です。

データ使用状況確認の提出には、各アプリが認証済みビジネスに接続されている必要があります。

「いいね!」 1

はい、まさにその意味です。

ありがとうございます。

これで、設定で変更する必要があることを確認する必要があります。いつも何かありますね。:grinning_face_with_smiling_eyes: