هل يعرف أحد كيف يمكنني الحصول على “external_id” لمستخدم من واجهة برمجة التطبيقات (API)؟ لقد أضفت external_id عند تسجيل الدخول عبر SSO، لكن الآن عند استعلام المستخدمين، لا أرى أي “external_id” في كائن المستخدم الذي تعيده واجهة برمجة التطبيقات. أحاول استخدام external_id كطريقة لتحديد المستخدمين من قاعدة بياناتي عند معالجة ويب هوك.
نعم، يمكن القيام بذلك عن طريق إرسال طلب GET مصادق عليه إلى https://discourse.example.com/u/by-external/{external_id}.json
يُوثق هذا المسار هنا: Discourse API Docs.
وللحصول على القيمة العكسية (أي استخلاص external_id بناءً على user_id)، يمكنك إما:
-
استخدام Discourse Ruby API واستدعاء الدالة: user_sso(user_id)
-
إرسال طلب GET مصادق عليه إلى:
https://discourse.example.com/admin/users/{id}.json
والبحث عن مفتاح الهاش [“single_sign_on_record”][“external_id”]
لاحظ أن single_sign_on_record (و external_id) لا يتم إرجاعهما عند استدعاء:
https://discourse.example.com/users/{username}.json