تهيئة تسجيل الدخول عبر Facebook لـ 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. بعد النقر فوق تطبيق جديد

يبدو أن مستهلك هو الخيار الأفضل، مما يوفر مجموعة محدودة من الخيارات مع كل ما نحتاجه.

في النهاية - الوصول المتقدم

يبدو الآن أنك بحاجة إلى طلب “الوصول المتقدم” إلى عنوان البريد الإلكتروني للمستخدم على فيسبوك. بدا هذا يتطلب بضع نقرات فقط وتم منحه تلقائيًا. ومع ذلك، استغرق الأمر بعض البحث للعثور عليه قبل أن يظهر.

يبدو أيضًا أن هناك حاجة لمراجعة الوصول في الشهر التالي أو نحو ذلك. بشكل عام، إنها الكثير من المتاعب أكثر من إعداد تسجيلات الدخول الأخرى لـ OAuth.

6 إعجابات

تمكنت أخيرًا من تكوين تسجيل الدخول عبر فيسبوك كوسيلة للمستخدمين للتسجيل (توقف تطبيقي الأصلي عن العمل بعد أن قام فيسبوك بتحديث الامتثال للائحة العامة لحماية البيانات الخاصة به). لمن يهتم، قم بإنشاء تطبيق جديد تمامًا على فيسبوك، بالإضافة إلى الخطوات المذكورة في المنشور الأول، ستحتاج أيضًا إلى هذه الخطوات على صفحة مطوري فيسبوك الخاصة بتطبيقك:\n\nمراجعة التطبيقالأذونات والميزات\n- public_profile → انقر على الحصول على وصول متقدم → اتبع التعليمات\n- email → انقر على الحصول على وصول متقدم → اتبع التعليمات\n\nالآن يجب أن يتمكن المستخدمون من التسجيل باستخدام فيسبوك ويجب أن يتلقوا إشعارات البريد الإلكتروني للمنشورات المشترك فيها أيضًا.

3 إعجابات

لقد تخليت عن تكامل تسجيل الدخول عبر فيسبوك. إما أن هؤلاء هم روبوتات أو أنهم لا يأخذون الوقت الكافي للقراءة. هذه هي المرة الثانية التي يثيرون فيها أن سياسة الخصوصية الخاصة بي تنتهك سياستهم. في المرة الأولى تمكنت من حلها. الآن عادت المشكلة.

رد فعلهم بعد أن كررت أن سياسة الخصوصية الخاصة بي تعالج مطالبهم بشكل جيد تمامًا.

مرحبًا،

شكرًا لك على التواصل معنا بخصوص تطبيقك.

يجب أن تمتثل سياسة الخصوصية المرتبطة بتطبيقك لسياسة منصة فيسبوك 4.ب:

تنص هذه السياسة على أنه يجب عليك تضمين كل ما يلي:

  • شرح واضح للبيانات التي تجمعها وتعالجها (تم)
  • الغرض الذي تجمع وتعالج هذه البيانات من أجله (تم)
  • كيف يمكن للمستخدمين طلب حذف هذه البيانات (معلق - حذف الحساب أو المحتوى لا يشبه طلب المستخدم لحذف البيانات. يمكنك تغيير جملتك لجعل شروط المنصة 4.ب متوافقة)

لمزيد من المعلومات بخصوص متطلبات سياسة الخصوصية الخاصة بنا، يرجى زيارة القسم الرابع من شروط منصة فيسبوك: https://developers.facebook.com/terms/dfc_platform_terms/.

شكرا لتعاونك. يرجى الرد على هذا البريد الإلكتروني عند تحديث تطبيقك أو إذا كانت لديك أي أسئلة حول هذا الطلب.

فيسبوك

بينما أشارك لقطة شاشة تصف تمامًا كيف يمكن للمستخدمين طلب إزالة البيانات ونوع البيانات التي هي.


على أي حال، أهم شيء أريد معرفته الآن هو هذا. الأشخاص الذين استخدموا فيسبوك لتسجيل الدخول، هل لا يزال بإمكانهم تسجيل الدخول باستخدام اسم مستخدم/كلمة مرور؟ أم أن هذا يعني أنني فقدت هؤلاء المستخدمين؟

إعجاب واحد (1)

إذا لم يقوموا بتعيين كلمة مرور مسبقًا، فسيحتاجون إلى طلب إعادة تعيين البريد الإلكتروني، ولكن نعم يمكنهم تسجيل الدخول بكلمة مرور. لقد مررنا للتو بهذا الأمر في منتدياتنا ولنفس السبب.

4 إعجابات

لا يوجد قسم #حذف في شروط الخدمة الافتراضية الخاصة بي :frowning:
ما هو المحتوى الذي يجب أن أضيفه إذا قمت بإنشاء هذا القسم يدويًا؟

إعجاب واحد (1)

لقد بذلت قصارى جهدي لتحديث سياسة الخصوصية الخاصة بنا للامتثال لتعليقاتهم: Privacy - TZM Forum

كان الأمر جيدًا في البداية، ثم بعد شهر أو شهرين عادوا بنفس الشكاوى. لسبب ما لم يكن أي تغيير كافياً، لذلك قاموا بتعطيل التطبيق. قمت بإزالته بعد ذلك، الحياة أقصر من أن أجادل مع فيسبوك (بوتات).

6 إعجابات

أثناء الفحص السنوي، لا يمكن لـ Facebook تحميل Discourse الخاص بي. إنهم عالقون على شاشة التحميل.
المنتدى يعمل بشكل جيد من جانبي وهناك مستخدمون متصلون.

(https://unicyclist.com).

أخبرتهم أن يحاولوا مرة أخرى، وأخبروني مرة أخرى أنهم لا يستطيعون تحميل الصفحة.

لذلك، هم…

يطلبون منك بلطف تزويدنا بلقطة شاشة تتضمن أيضًا العناصر التالية:

  1. اسم التطبيق الخاص بك، ومعرف التطبيق، وأيقونة التطبيق.

  2. تدفق تسجيل الدخول الكامل الخاص بـ Facebook (إذا قمت بتطبيق تسجيل الدخول إلى Facebook، فاعرض مستخدم التطبيق وهو يحدد موقع زر تسجيل الدخول إلى Facebook).

  3. تدفق إنشاء الحساب وتسجيل الدخول الخاص بتطبيقك، إذا كان بإمكان مستخدمي تطبيقك إنشاء حسابات وتسجيل الدخول إلى تطبيقك دون استخدام تسجيل الدخول إلى Facebook.

  4. لكل إذن يصل تطبيقك إلى بياناته، اعرض مستخدم التطبيق وهو يصل إلى البيانات التي تتطلب الإذن، بالإضافة إلى ما يفعله تطبيقك بهذه البيانات.

  5. تدفق تسجيل الدخول إلى Facebook يوضح ما يحدث عندما يرفض مستخدم التطبيق إذنًا يطلبه تطبيقك.

  6. موقع سياسة الخصوصية الخاصة بك في تطبيقك. انقر فوق الارتباط لسياسة الخصوصية الخاصة بك لعرض محتوى سياستك.

  7. المحتوى داخل تطبيقك.

  8. المكونات الاجتماعية، إن وجدت، وكيف يتم استخدامها. على سبيل المثال، الإعجاب بالصفحات أو متابعتها، أو مشاركة المحتوى على Facebook، أو دعوة الأصدقاء أو الإشارة إليهم. إذا كان تطبيقك متاحًا على منصات مختلفة (Connect، iOS، Android، Canvas…)، فتأكد من عرض جميع المعلومات المذكورة أعلاه للمنصات المدرجة.

Meta صعب جدًا في التعامل معه لدرجة أنني قد أقوم ببساطة بإزالة جميع ميزاته من منتدياتي، وهي تسجيلات الدخول إلى Facebook و Instagram (غير مستقرة قليلاً) المضمنة في iframes (أفتقد the old oneboxes).
لا يمكنني حتى الحصول على معاينات لروابط Facebook المنشورة داخل المواضيع (ربما بسبب هذا non-resolvable thing).

لست متأكدًا من أن هذه الميزات تستحق العناء.


تعديل: صديق يدير منتدى Discourse تلقى نفس البريد الإلكتروني من Facebook وتساءل عن عدد مستخدميهم الذين لديهم بالفعل حساب Facebook مرتبط.
يمكنك استخدام هذه الاستعلامات في data explorer للحصول على عدد المستخدمين الذين نشروا مرة واحدة على الأقل خلال العام الماضي من الآن ولديهم حساب 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

من منتدى الخاص بي، نشر 411 مستخدمًا مرة واحدة على الأقل في العام الماضي، و 30 منهم لديهم حساب Facebook مرتبط. هذا لا يعني أنهم يستخدمونه.


تعديل: تم الأمر، لقد قمت بتعطيل ميزات Facebook من منتدياتي. اعتقدت ربما كان ذلك خسارة، لكن الإعلان عن ذلك منحني الكثير من الإعجابات :laughing:. يبدو أن مجتمعاتي ليست مولعة بشكل خاص بـ Facebook بعد كل شيء…

6 إعجابات

بعد تغيير خادم المنتدى الخاص بي، لم أتمكن أنا ومستخدمي من استخدام تسجيل الدخول عبر فيسبوك للدخول إلى الكلام، ويظهر الخطأ التالي:

عذرًا، حدث خطأ أثناء المصادقة على حسابك. حاول مرة أخرى.

هل يعرف أحد السبب وكيفية إصلاحه؟

هل لديك نفس عنوان URL لمنتدى الخاص بك؟

إعجاب واحد (1)

لقد وصلت إلى خطوة “Go Public”، وفجأة…

يتطلب التحقق من النشاط التجاري للانطلاق

قبل أن تتمكن من الانطلاق، يجب على مسؤول التطبيق إكمال التحقق من النشاط التجاري. بمجرد التحقق من حساب نشاطك التجاري، يمكنك العودة إلى هذه الصفحة والانطلاق. تعرف على المزيد حول التحقق من النشاط التجاري.

التحقق من النشاط التجاري بعيد المنال بشكل ميؤوس منه في حالتي، لأنني لا أملك نشاطًا تجاريًا مسجلاً قانونيًا:

لقد بحثت في جوجل ووجدت أن هذا التغيير حدث قبل 3 أشهر فقط، أي في فبراير 2023:

أعتقد أنني عالق إلى الأبد. انسَ تسجيل الدخول عبر فيسبوك بالنسبة لي. المواقع الصغيرة وغير الرسمية محظورة الآن من الملعب. :neutral_face: :disappointed:

3 إعجابات

إليك المزيد من المعلومات حول الحاجز الذي وجدته.

وثائق Graph API:

email

هذا الإذن أو الميزة متاح فقط مع التحقق من النشاط التجاري.

public_profile

هذا الإذن أو الميزة متاح فقط مع التحقق من النشاط التجاري.

إعجابَين (2)

تلقيت بريدًا إلكترونيًا من مطور فيسبوك يفيد بأنني سأفقد الوصول إلى تطبيقي (الذي يُستخدم لتسجيل الدخول عبر فيسبوك وربط إنستغرام، على حد علمي) ما لم أكمل التحقق من النشاط التجاري.\n\nإن نسختي هي مجرد هواية ولا تحقق أي ربح يبرر اعتبارها نشاطًا تجاريًا بأي شكل من الأشكال. أتساءل فقط كيف يخطط الآخرون للتعامل مع هذا؟!؟

3 إعجابات

هل تخبر المستخدمين بتسجيل الدخول بطريقة أخرى؟ اخبز بعض الكعكات، أحضرها إلى باب مارك زوكربيرج، وقدمها على ركبتيك؟

بكل جدية، أعتقد أن هذا هو نهاية الطريق. لا أحد يتحكم في واجهة برمجة تطبيقات موقع فيسبوك سوى فيسبوك. هذه ليست مشكلة يمكن “حلها” بالتفكير الإبداعي، أو هندستها.

آسف لحمل أخبار سيئة :disappointed_face:

إعجاب واحد (1)

لتوضيح الأمر، هل هناك أي طريقة لاستخدام تسجيل الدخول باستخدام فيسبوك دون الحاجة إلى عمل تجاري معتمد؟

توضيح لهذا، هل هذا يعني أنه سيتم حذف بيانات المستخدم وإنشاء مستخدم جديد لـ Discourse أم يعني أن المستخدم سيحتاج إلى إعادة المصادقة (منح الأذونات لمشاركة المعلومات) بواسطة فيسبوك عند تسجيل الدخول التالي؟

للتوضيح، هل هناك أي طريقة لاستخدام تسجيل الدخول باستخدام فيسبوك دون امتلاك عمل تجاري معتمد؟
لا، على حد علمي.

إعجاب واحد (1)

هل تلقى أي شخص آخر هذا البريد الإلكتروني من ميتا؟

يبدو أن بعض الأشخاص واجهوا هذا العام الماضي، لذا ربما حان دوري الآن. أنا لست شركة، فهل هذا يعني أنني سأحتاج إلى إزالة تسجيل الدخول عبر ميتا في المستقبل؟

أكمل فحص استخدام البيانات لمجتمع X

حماية خصوصية الأشخاص أولوية رئيسية لميتا والمطورين الذين يبنون على منصتنا. لهذا السبب نحن نطلب فحصًا سنويًا للتأكد من أن وصولك إلى واجهة برمجة التطبيقات (API) واستخدامك للبيانات يتوافقان مع سياسات ميتا. تعرف على المزيد.

إليك ما تحتاج إلى القيام به لمجتمع X قبل 30 مايو 2024 للحفاظ على الوصول إلى واجهة برمجة التطبيقات وتجنب القيود:

  1. افحص الأذونات والميزات التي تمت الموافقة عليها أو إضافتها مسبقًا.
  2. صدّق على أن هذا التطبيق يتبع الاستخدام المسموح به.
  3. صدّق على أنك تتبع شروط منصة ميتا وسياسات المطورين، جنبًا إلى جنب مع جميع الشروط والسياسات الأخرى المعمول بها.
  4. أجب عن أسئلة حول ممارسات معالجة البيانات الخاصة بك. تعرف على إرشادات معالجة البيانات الخاصة بنا.

فحص استخدام البيانات هو متطلب يجب على مسؤول التطبيق إكماله مرة واحدة سنويًا.
تأكد من أن كل تطبيق متصل بـ شركة معتمدة - هذا مطلوب لتقديم فحص استخدام البيانات.

إعجاب واحد (1)

نعم، هذا يعني ذلك بالضبط.

شكرا سيدي.

سأضطر الآن إلى المرور بما أحتاج إلى تغييره في الإعدادات. إنه دائمًا شيء ما، أليس كذلك؟ :grinning_face_with_smiling_eyes: