استخدام external_id عبر API

مرحباً،

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

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

أحاول استرجاع المستخدم باستخدام طلب GET التالي:

https://our_domain.discourse.group/u/by-external/7000.json

ولكنه يُرجع 404 والاستجابة التالية:

{
    "errors": [
        "لم يتم العثور على عنوان URL أو المورد المطلوب."
    ],
    "error_type": "not_found"
}

فيما يلي أمثلة لبعض طلبات إنشاء المستخدم التي جربتها. يتم إنشاء المستخدمين بنجاح، ولكن لا يمكنني استرجاعهم بواسطة external_id. (ملاحظة جانبية: هل هناك أيضًا طريقة لعرض external_id لمستخدم؟):

{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_id": 7000
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_id": "7000"
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_ids": {
        "external_id": 7000
    }
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_ids": [
        7000
    ]
}

هل تم تمكين DiscourseConnect على موقعك؟ إذا لم يكن كذلك، فستحتاج إلى العثور على اسم موفر المصادقة الخاص بك واستخدامه في الطلب. بعض التفاصيل حول هذا هنا: Finding a user by their identity provider 'external ID'.

شكراً على ردك.

أعتقد أن هذا يعني أنه لا يمكننا استخدام external_id، لأننا لا نريد تمكين DiscourseConnect. لا نريد استبدال مصادقة Discourse.

سنضطر على الأرجح إلى إنشاء المستخدم عبر واجهة برمجة التطبيقات (API)، ثم تخزين معرف مستخدم Discourse (user.id) في نظامنا والإشارة إليه بهذه الطريقة.

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