Prüfung auf neue Chat-Nachrichten über API

Hallo,

ich integriere Discourse in eine andere Anwendung und versuche über die API herauszufinden, ob jemand neue Chat-Aktivitäten hat. Wenn es neue Nachrichten gibt, möchte ich nur ein rotes Abzeichen anzeigen.

Genauer gesagt versuche ich, die Einstellungen zu nutzen, die der Kunde in seiner “chat_header_indicator_preference” vorgenommen hat. Derzeit ist diese auf “all_new” eingestellt, was meiner Meinung nach alle neuen Nachrichten in Kanälen anzeigen sollte, zu denen ich gehöre, sowie ungelesene Erwähnungen/DMs.

Ich hatte gehofft, dass ich unter /session/current.json etwas Nützliches finden würde, aber bisher habe ich nichts Brauchbares gesehen.

Gibt es einen API-Endpunkt, den ich verwenden kann, um zu ermitteln, ob es neue Nachrichten basierend auf der chat_header_indicator_preference eines Benutzers gibt?

/chat/api/me/channels und der Tracking-Schlüssel enthalten alle Informationen, die Sie benötigen. Möglicherweise werden wir eines Tages einen spezialisierteren Endpunkt erstellen.

1 „Gefällt mir“

Danke @j.jaffeux. Ich schaue mir /chat/api/me/channels an und sehe unter Tracking, dass ich alle Kanäle durchgehen und sehen kann, ob der unread_count für einen der Kanäle > 0 ist, was hilfreich ist.

Aber das scheint nichts mit der chat_header_indicator_preference eines Benutzers zu tun zu haben und sagt mir auch nicht, ob es DMs oder Erwähnungen für den Benutzer gab.

Theoretisch kann ich versuchen, die Logik von chat_header_indicator_preference nachzubilden, indem ich zuerst prüfe, ob der Benutzer diese auf “all_new” gesetzt hat und wenn ja, prüfe, ob alle unread_counts für seine Kanäle > 0 sind und wenn diese alle 0 sind, dann prüfe auf ungelesene DMs/Erwähnungen.

Aber ich hoffe, es gibt einen besseren Weg… (und ich bin mir auch nicht sicher, wie ich das zweite Stück für ungelesene DMs/Erwähnungen bekomme).

Jede Hilfe / Anleitung wäre sehr willkommen.

1 „Gefällt mir“

Es tut mir leid, ich verstehe nicht, was Sie erreichen wollen.

Ich versuche, in meiner App ein Abzeichen anzuzeigen, wenn jemand neue Aktivitäten im Chat hat.

Unter Einstellungen → Chat gibt es eine Einstellung namens “chat_header_indicator_preference” mit den folgenden Optionen:

Ein Benutzer würde nur dann ein rotes Abzeichen für neue Aktivitäten erwarten, wenn diese Einstellung aktiviert ist. Wenn jemand “Alle neuen Nachrichten” eingestellt hat, würde ich erwarten, dass dies bedeutet, dass ein Abzeichen angezeigt wird, wenn es neue Aktivitäten in einem der Kanäle gibt, in denen er sich befindet, oder wenn er erwähnt wurde oder eine Direktnachricht erhalten hat.

Sie haben mir gezeigt, wie ich alle Kanäle durchlaufen und prüfen kann, ob ungelesene Nachrichten vorhanden sind, aber 1) das hat nichts mit dieser Einstellung zu tun
2) das würde mir nicht helfen zu verstehen, ob sie Direktnachrichten oder Erwähnungen haben

Idealerweise hoffte ich, einen Endpunkt zu finden, der mir hilft, ein Abzeichen basierend auf der chat_header_indicator_preference des Kunden anzuzeigen.

Wenn das nicht möglich ist, dann scheint es, dass ich zuerst prüfen müsste, ob sie ungelesene Nachrichten im “Tracking-Bereich” von chat/api/me/channels haben, und dann einen zweiten Ort prüfen müsste, um zu sehen, ob sie Direktnachrichten/Erwähnungen hatten.

Ich weiß nicht, wo sich dieser zweite Ort befinden würde, aber ich hoffte, dass mir jemand hier in die richtige Richtung weisen könnte.

Macht das Sinn?

1 „Gefällt mir“

Tracking hat sowohl direkte als auch öffentliche Kanäle.

2 „Gefällt mir“

Danke… das war mir nicht ersichtlich.

Gibt es beim Tracking eine Möglichkeit zu erkennen, welche Kanäle DM und welche öffentlich sind?

Wenn ein Benutzer chat_header_indicator_preference auf „Direktnachrichten und Erwähnungen“ gesetzt hat, möchte ich kein Abzeichen für normale neue Nachrichten in einem Kanal anzeigen.

1 „Gefällt mir“

Ja, Sie haben direct_message_channels und public_channels, sodass Sie mit der ID im Tracking nachschlagen können.

2 „Gefällt mir“

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