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
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).
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.
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.