أقوم بدمج Discourse في تطبيق آخر وأحاول تحديد ما إذا كان لدى شخص ما أي نشاط دردشة جديد معلق عبر واجهة برمجة التطبيقات. إذا كانت هناك أي رسائل جديدة، فأنا فقط أرغب في عرض شارة حمراء.
بشكل أكثر تحديدًا، أحاول الاستفادة من أي تفضيلات قام العميل بتعيينها في “chat_header_indicator_preference” وفي الوقت الحالي قمت بتعيينها على “all_new” والتي أعتقد أنها يجب أن تعرض أي رسائل جديدة في القنوات التي أنتمي إليها بالإضافة إلى الإشارات/الرسائل المباشرة غير المقروءة.
كنت آمل أنه من خلال الانتقال إلى /session/current.json سأتمكن من رؤية شيء هناك يمكنني استخدامه لهذا الغرض ولكنني لم أر شيئًا مفيدًا.
هل هناك أي نقطة نهاية لواجهة برمجة التطبيقات يمكنني استخدامها لفهم ما إذا كانت هناك رسائل جديدة بناءً على تفضيل “chat_header_indicator_preference” الخاص بالمستخدم؟
شكرا @j.jaffeux. أنا ألقي نظرة على /chat/api/me/channels وأرى ضمن التتبع أنه يمكنني المرور عبر جميع القنوات ورؤية ما إذا كان unread_count لأي من القنوات > 0 وهو أمر مفيد.
لكن هذا لا يبدو له علاقة بتفضيل chat_header_indicator_preference للمستخدم ولا يخبرني ما إذا كانت هناك أي رسائل مباشرة أو إشارات للمستخدم.
من الناحية النظرية، يمكنني محاولة إعادة إنشاء منطق chat_header_indicator_preference عن طريق التحقق أولاً مما إذا كان المستخدم قد قام بتعيين ذلك على “all_new” وإذا كان الأمر كذلك، فتحقق مما إذا كانت أي unread_counts لقنواتهم > 0 وما إذا كانت جميعها 0 ثم تحقق من الرسائل المباشرة/الإشارات غير المقروءة.
لكنني آمل أن تكون هناك طريقة أفضل للقيام بذلك… (وأنا لست متأكدًا أيضًا من كيفية الحصول على هذه القطعة الثانية للرسائل المباشرة/الإشارات غير المقروءة).
يتوقع المستخدم رؤية شارة حمراء فقط للنشاط الجديد بناءً على هذا التفضيل. إذا كان لدى شخص ما إعداد “All New Messages” (كل الرسائل الجديدة)، فسأتوقع أن هذا يعني أن الشارة ستظهر إذا كان هناك أي نشاط جديد في أي من القنوات التي يتواجد فيها أو تم ذكره أو لديه رسالة مباشرة.
لقد أريتني كيفية المرور عبر جميع القنوات ومعرفة ما إذا كانت هناك رسائل غير مقروءة ولكن 1) هذا لا علاقة له بهذا التفضيل
2) هذا لن يساعدني في فهم ما إذا كان لديهم أي رسائل مباشرة أو إشارات
من الناحية المثالية، كنت آمل في العثور على نقطة نهاية ستساعدني في عرض شارة بناءً على chat_header_indicator_preference الخاص بالعميل.
إذا لم يكن ذلك ممكنًا، فيبدو أنني سأحتاج أولاً إلى التحقق مما إذا كان لديهم رسائل غير مقروءة في “قسم التتبع” من chat/api/me/channels، ثم التحقق من موقع ثانٍ لمعرفة ما إذا كان لديهم رسائل مباشرة/إشارات.
لا أعرف أين سيكون هذا الموقع الثاني ولكني كنت آمل أن يتمكن شخص آخر هنا من توجيهي في الاتجاه الصحيح.