Vérification des nouveaux messages de chat via l'API

Bonjour,

J’intègre Discourse dans une autre application et j’essaie de savoir via l’API si une personne a une activité de chat en attente. S’il y a de nouveaux messages, je veux juste afficher un badge rouge.

Plus précisément, j’essaie de tirer parti des préférences que le client a définies dans son « chat_header_indicator_preference » et pour le moment, je l’ai défini sur « all_new », ce qui, je pense, devrait afficher tous les nouveaux messages dans les canaux auxquels j’appartiens ainsi que les mentions/messages privés non lus.

J’espérais qu’en allant sur /session/current.json, je pourrais y voir quelque chose d’utile, mais je n’ai rien trouvé d’utile.

Existe-t-il un point de terminaison d’API que je peux utiliser pour savoir s’il y a de nouveaux messages en fonction de la préférence chat_header_indicator_preference d’un utilisateur ??

/chat/api/me/channels et la clé de suivi contiennent toutes les informations dont vous avez besoin, nous pourrions créer un point de terminaison plus spécialisé un jour

1 « J'aime »

Merci @j.jaffeux. Je regarde /chat/api/me/channels et je vois sous tracking que je peux parcourir tous les canaux et voir si le unread_count de l’un des canaux est > 0, ce qui est utile.

Mais cela ne semble rien avoir à voir avec la préférence chat_header_indicator_preference d’un utilisateur et ne me dit pas non plus s’il y a eu des DMs ou des mentions pour l’utilisateur.

En théorie, je peux essayer de recréer la logique de chat_header_indicator_preference en vérifiant d’abord si l’utilisateur l’a réglé sur “all_new” et si c’est le cas, vérifier si tous les unread_counts de ses canaux sont > 0 et si ceux-ci sont tous à 0, puis vérifier les DMs/mentions non lus.

Mais j’espère qu’il existe une meilleure façon de le faire… (et je ne sais pas non plus comment obtenir cette deuxième partie pour les DMs/mentions non lus).

Toute aide / orientation serait très appréciée.

1 « J'aime »

Je suis désolé, je ne comprends pas ce que vous essayez d’accomplir.

Je cherche à afficher un badge dans mon application si un utilisateur a une nouvelle activité dans le chat.

Dans Préférences –> Chat, il y a un paramètre appelé “chat_header_indicator_preference” qui offre les options suivantes :

Un utilisateur s’attendrait à ne voir un badge rouge pour une nouvelle activité que sur la base de cette préférence. Si un utilisateur a défini “Tous les nouveaux messages”, je m’attendrais à ce que cela signifie qu’un badge s’affiche s’il y a une nouvelle activité dans l’un des canaux auxquels il appartient, ou s’il a été mentionné ou s’il a reçu un message direct.

Vous m’avez montré comment parcourir tous les canaux et voir s’il y a des messages non lus, mais 1) cela n’a rien à voir avec cette préférence
2) cela ne m’aiderait pas à comprendre s’ils ont des messages directs ou des mentions.

Idéalement, j’espérais trouver un point de terminaison qui m’aiderait à afficher un badge en fonction de la chat_header_indicator_preference du client.

Si cela n’est pas possible, il semble que je devrais d’abord vérifier s’ils ont des messages non lus dans la “section de suivi” de chat/api/me/channels, puis vérifier un deuxième emplacement pour voir s’ils ont eu des messages directs/mentions.

Je ne sais pas où se trouverait ce deuxième emplacement, mais j’espérais que quelqu’un d’autre ici pourrait m’orienter.

Est-ce que cela a du sens ?

1 « J'aime »

Le suivi dispose de canaux directs et publics.

2 « J'aime »

Merci… ce n’était pas évident pour moi.

En matière de suivi, y a-t-il un moyen de savoir quels canaux sont des MP et quels sont publics ?

Si un utilisateur a la préférence chat_header_indicator_preference définie sur « Messages directs et mentions », je ne voudrais pas afficher de badge pour les nouveaux messages ordinaires dans un canal.

1 « J'aime »

Oui, vous avez direct_message_channels et public_channels, vous pouvez donc effectuer des recherches avec l’identifiant dans le suivi.

2 « J'aime »

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