التحقق من رسائل الدردشة الجديدة عبر API

مرحباً،

أقوم بدمج Discourse في تطبيق آخر وأحاول تحديد ما إذا كان لدى شخص ما أي نشاط دردشة جديد معلق عبر واجهة برمجة التطبيقات. إذا كانت هناك أي رسائل جديدة، فأنا فقط أرغب في عرض شارة حمراء.

بشكل أكثر تحديدًا، أحاول الاستفادة من أي تفضيلات قام العميل بتعيينها في “chat_header_indicator_preference” وفي الوقت الحالي قمت بتعيينها على “all_new” والتي أعتقد أنها يجب أن تعرض أي رسائل جديدة في القنوات التي أنتمي إليها بالإضافة إلى الإشارات/الرسائل المباشرة غير المقروءة.

كنت آمل أنه من خلال الانتقال إلى /session/current.json سأتمكن من رؤية شيء هناك يمكنني استخدامه لهذا الغرض ولكنني لم أر شيئًا مفيدًا.

هل هناك أي نقطة نهاية لواجهة برمجة التطبيقات يمكنني استخدامها لفهم ما إذا كانت هناك رسائل جديدة بناءً على تفضيل “chat_header_indicator_preference” الخاص بالمستخدم؟

/chat/api/me/channels والمفتاح التتبعي يحتويان على كل المعلومات التي تحتاجها، قد ننشئ نقطة نهاية أكثر تخصصًا في يوم من الأيام

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

شكرا @j.jaffeux. أنا ألقي نظرة على /chat/api/me/channels وأرى ضمن التتبع أنه يمكنني المرور عبر جميع القنوات ورؤية ما إذا كان unread_count لأي من القنوات > 0 وهو أمر مفيد.

لكن هذا لا يبدو له علاقة بتفضيل chat_header_indicator_preference للمستخدم ولا يخبرني ما إذا كانت هناك أي رسائل مباشرة أو إشارات للمستخدم.

من الناحية النظرية، يمكنني محاولة إعادة إنشاء منطق chat_header_indicator_preference عن طريق التحقق أولاً مما إذا كان المستخدم قد قام بتعيين ذلك على “all_new” وإذا كان الأمر كذلك، فتحقق مما إذا كانت أي unread_counts لقنواتهم > 0 وما إذا كانت جميعها 0 ثم تحقق من الرسائل المباشرة/الإشارات غير المقروءة.

لكنني آمل أن تكون هناك طريقة أفضل للقيام بذلك… (وأنا لست متأكدًا أيضًا من كيفية الحصول على هذه القطعة الثانية للرسائل المباشرة/الإشارات غير المقروءة).

أي مساعدة / توجيه سيكون موضع تقدير كبير.

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

أنا آسف، لا أفهم ما تحاول تحقيقه.

أحاول عرض شارة في تطبيقي إذا كان لدى شخص ما أي نشاط جديد في الدردشة.

ضمن التفضيلات –> الدردشة، يوجد إعداد يسمى “chat_header_indicator_preference” والذي يحتوي على الخيارات التالية:

يتوقع المستخدم رؤية شارة حمراء فقط للنشاط الجديد بناءً على هذا التفضيل. إذا كان لدى شخص ما إعداد “All New Messages” (كل الرسائل الجديدة)، فسأتوقع أن هذا يعني أن الشارة ستظهر إذا كان هناك أي نشاط جديد في أي من القنوات التي يتواجد فيها أو تم ذكره أو لديه رسالة مباشرة.

لقد أريتني كيفية المرور عبر جميع القنوات ومعرفة ما إذا كانت هناك رسائل غير مقروءة ولكن 1) هذا لا علاقة له بهذا التفضيل
2) هذا لن يساعدني في فهم ما إذا كان لديهم أي رسائل مباشرة أو إشارات

من الناحية المثالية، كنت آمل في العثور على نقطة نهاية ستساعدني في عرض شارة بناءً على chat_header_indicator_preference الخاص بالعميل.

إذا لم يكن ذلك ممكنًا، فيبدو أنني سأحتاج أولاً إلى التحقق مما إذا كان لديهم رسائل غير مقروءة في “قسم التتبع” من chat/api/me/channels، ثم التحقق من موقع ثانٍ لمعرفة ما إذا كان لديهم رسائل مباشرة/إشارات.

لا أعرف أين سيكون هذا الموقع الثاني ولكني كنت آمل أن يتمكن شخص آخر هنا من توجيهي في الاتجاه الصحيح.

هل هذا منطقي؟

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

التتبع لديه قنوات مباشرة وعامة.

إعجابَين (2)

شكرًا… لم يكن هذا واضحًا بالنسبة لي.

في التتبع، هل هناك أي طريقة لمعرفة القنوات التي هي رسائل مباشرة وتلك التي هي عامة؟

إذا كان لدى المستخدم تعيين chat_header_indicator_preference إلى “الرسائل المباشرة والإشارات”، فلن أرغب في عرض شارة للرسائل الجديدة العادية في قناة.

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

نعم، لديك direct_message_channels و public_channels، لذا يمكنك إجراء عمليات بحث باستخدام المعرف في التتبع.

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.