مرحباً بالجميع. أنا أستخدم SSO على منتدى الخاص بي ويتم التحكم في الصور الرمزية بواسطة موقع الويب الخاص بي.
حتى قبل بضعة أيام، كان تحميل/تحديث الصور الرمزية من موقع الويب إلى Discourse، عبر واجهة برمجة التطبيقات يعمل. الآن أحصل على خطأ 422 - كيان غير قابل للمعالجة.
لقد حاولت تصحيح المشكلة، وقمت ببعض الاختبارات باستخدام Postman ولدي نفس المشاكل. الطلب الذي أقوم به أدناه (مع إزالة عنوان URL واسم المستخدم ومفتاح API، بالطبع).
هل يعرف أي منكم ما إذا كانت هناك أي مشكلة في هذا الجزء من Discourse؟
أعتقد أن هذا سيتداخل مع التحميل الفعلي، وليس تعيين الصورة الرمزية للمستخدم.
يمكنني تحميل الملف دون أي مشكلة. عندما أقوم بالاتصال بواجهة برمجة التطبيقات (API) للإشارة إلى الملف الذي سيتم استخدامه كصورة رمزية، عندها أحصل على الخطأ، وقد بدأ ذلك بشكل مفاجئ.
ليس لدي إجابة بعد، ولكني أردت فقط إخبارك بأن هذا مدرج في قائمتي للبحث فيه. لدي إعداد تسجيل دخول موحد (SSO) يمكنني اختباره محليًا، حتى تتطابق إعداداتنا. يبدو أنه يجب علينا احترام إعداد الموقع هذا الذي ربما قام شخص ما بتغييره مؤخرًا، ولكن ربما يمكننا إضافة تجاوز لواجهة برمجة التطبيقات (API).
فكرت في ذلك أيضاً ولكنه لم ينجح. علاوة على ذلك، ظهرت هذه المشكلة بشكل مفاجئ. لم يقم أحد بتغيير أي شيء (أنا المسؤول الوحيد لذلك لا توجد فرصة أن يكون شخص ما قد غيّر أي إعدادات)، ولا تغييرات في الكود على الموقع الرئيسي، ولا شيء.
هل يمكنك إخباري بما قمت بتعيينه لـ allow_uploaded_avatars؟ لم يعد مجرد إعداد صحيح/خطأ، ولكنه تم تعيينه لمستوى ثقة معين. وهل يمكنك إخباري بمستوى ثقة المستخدم الذي يحاول تغيير صورته الرمزية؟ وهل أنت على أحدث إصدار من Discourse؟
هنا الكود لاختيار صورة رمزية والأسطر التي تُرجع استجابات 422.
ليس أنه لا يمكن أن يكون شيئًا آخر في أعماق قاعدة الكود، ولكنه على الأرجح أحد هذه الثلاثة. الأول له علاقة بـ discourse_connect_overrides_avatar ويبدو أننا استبعدنا هذا. لا أعتقد أنه الثاني لأن أمر curl الخاص بك يبدو صحيحًا ويتضمن النوع “uploaded”. قد يكون لا يزال الثالث مع إعداد allow_uploaded_avatars وهذا هو السبب في أنني أود معرفة ما قمت بتعيينه لهذا الإعداد.
لقد قمت بتعطيله حتى بدأت هذه المشكلة. ثم قمت بتغييره إلى 0: مستخدم جديد.
لكن تعطيله كان يعمل دائمًا بالنسبة لي. لا أريد للمستخدمين تحميل الملفات فعليًا من المنتدى، بل من موقع الويب الذي يستخدم تسجيل الدخول الموحد (SSO). ومع ذلك، فإن تغييره إلى 0: مستخدم جديد لا يغير شيئًا. ما زلت أحصل على نفس الخطأ
لا يمكنني العثور على أي تحديث حديث قد يكون أوقف عمل الصور الرمزية عبر واجهة برمجة التطبيقات (API) عندما تكون جميع إعدادات الموقع تحظرها. على أي حال، إذا كنت تستخدم SSO (أو DiscourseConnect)، فيجب عليك استخدام مسار واجهة برمجة التطبيقات /admin/users/sync_sso لتحديث الصورة الرمزية للمستخدمين وليس المسار في واجهة المستخدم (/u/username/preferences/avatar/pick).
مرحباً بليك. شكراً جزيلاً لك على مساعدتك المستمرة في هذا الشأن.
لا يمكنني العثور على أي معلومات حول هذا الـ endpoint في توثيق الـ API. هل هذا شيء جديد؟
أيضًا، كما أشرت سابقًا، كان تحديث الصورة الرمزية يعمل بشكل جيد لعدة أشهر باستخدام الـ endpoint /u/username/preferences/avatar/pick، وهو أمر غريب حقًا. لقد توقف عن العمل فجأة. هذا يحيرني حقًا.