شكرًا لك على هذا المنشور، الذي كان لا يُقدر بثمن في إعداد مشروع حديث تطلب تسجيل الدخول إلى Salesforce.
في حالتنا، كان تطبيق Salesforce عبارة عن مجتمع (Community)، مما يعني أننا اضطررنا إلى تغيير بعض التفاصيل المذكورة أعلاه. أنشر هذا في هذا الموضوع القديم في حال كان مفيدًا لأي شخص آخر. لقد كاد أن يحطم عقلي ليوم كامل.
عنوان URL لتفويض oauth2: https://[اسم_المجتمع].force.com/services/oauth2/authorize
عنوان URL لرمز oauth2: https://[اسم_المجتمع].force.com/services/oauth2/token
ومع ذلك، واجهنا مشاكل مع أخطاء 403 Forbidden، والتي كانت عبارة عن HTML غير منسق ولم تبدو مثل خطأ في Discourse بالنسبة لي، مما أدى إلى الكثير من تصحيح أخطاء Salesforce وشق الأسنان. لكن المشكلة كانت في Discourse.
Forbidden
ليس لديك إذن للوصول إلى هذا المورد.
بالإضافة إلى ذلك، تم التقاط خطأ 500 Internal Server Error أثناء محاولة استخدام ErrorDocument للتعامل مع الطلب.
على الرغم من أن التحويل إلى عنوان URL للاستدعاء (Callback URL) بدا أنه يعمل، إلا أن وحدة تحكم المتصفح سجلت فشل المصادقة. في النهاية، كان السبب في فشل المصادقة هو عدم تعيينمسار معرف المستخدم في استدعاء oauth2. تم حل كل شيء بتعيينه إلى id.
شكرًا لكم على الإرشادات، وقد تمكنا من المصادقة بنجاح باستخدام Salesforce، لكننا واجهنا مشكلة. يبدو أن كائنات/حقول Salesforce لا تُمرَّر بنجاح إلى Discourse. فبعد تسجيل الدخول الناجح إلى Salesforce على Discourse، يبدو أن Discourse يعامل المستخدم كجديد ويطلب منه اسم المستخدم والبريد الإلكتروني والاسم، رغم أنه ينبغي أن تأتي هذه البيانات من حقول الاسم والبريد الإلكتروني واسم المستخدم في استجابة JSON الخاصة بـ OAuth2.
هل يمكنكم مساعدتنا في معرفة تنسيق JSON المطلوب لكائنات/حقول Salesforce المستخدمة في إضافة OAuth2؟ لقد جربنا الصيغ object.field و object_field و field فقط. ولا يبدو أن هناك أي خطأ يُبلغ عنه، لكن لا شيء يُمرَّر من Salesforce إلى Discourse عبر JSON للتعرف على تسجيل الدخول على أنه ليس مستخدمًا جديدًا في Discourse.