كيف يمكنني الحصول على ملفات تعريف الارتباط (cookies) لمستخدم أو 'user-api-key' دون الحاجة إلى تفاعل المستخدم أو إعادة توجيه المتصفح؟

أنا حاليًا أطور تطبيقًا يستخدم Discourse فقط كواجهة برمجة تطبيقات (API). الميزة الجديدة تتعلق بالرسائل الخاصة (PMs)، حيث نستخدم private_messages. المشكلة هنا هي أننا نحتاج إلى تلقي التحديثات من هذه المواضيع الخاصة (private_messages) عبر MessageBus، وطريقة المصادقة الحالية لدينا باستخدام اسم المستخدم: user.username و Api-Key: admin_api_key لا تعمل حصريًا في حالة MessageBus والمواضيع الخاصة هذه؛ إنها تعمل لكل شيء آخر.

لذلك، نحتاج إلى طريقة للحصول على ملفات تعريف الارتباط (cookies) وحقنها في الواجهة الأمامية لدينا عند استدعاء MessageBus، أو إنشاء ‘user-api-key’ ومستخدم بدلاً من مفتاح واجهة برمجة التطبيقات (api-key). ولكن نحتاج إلى القيام بذلك فقط عبر واجهة برمجة التطبيقات (API)، حيث سيتواصل برنامجنا الخلفي مع الواجهة الخلفية لـ Discourse ويوفر كل شيء. ستكون الواجهة الأمامية مسؤولة فقط عن استلام ملف تعريف الارتباط أو user-api-key وإضافته إلى طلب MessageBus.

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

أفترض أن هذا خطأ مطبعي وتشير إلى الرسائل الخاصة (PMs)؟ الرسائل المباشرة (DMs) تتعلق بـ #الدردشة.

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

رائع!

لا يوجد نقطة نهاية لواجهة برمجة تطبيقات HTTP لإنشاء كائنات UserApiKey لمستخدمين آخرين. نقطة النهاية /user-api-key تنشئ مفاتيح للمستخدم الذي قام بتسجيل الدخول فقط.

قد يكون استخدام MessageBus مفيدًا، ولكني لست متأكدًا من كيفية تجاوز مشكلات المصادقة. قد تحتاج إلى إجراء استقصاء (polling) و/أو الاعتماد على خطافات الويب (webhooks) عند تحديث الرسائل الخاصة.

نعم! المواضيع ذات archtype: private_message

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