Sto integrando Discourse in un’altra applicazione e sto cercando di verificare tramite API se qualcuno ha attività di chat in sospeso. Se ci sono nuovi messaggi, voglio solo mostrare un badge rosso.
Più specificamente, sto cercando di sfruttare le preferenze che il cliente ha impostato nel suo “chat_header_indicator_preference” e al momento l’ho impostato su “all_new”, che penso dovrebbe mostrare tutti i nuovi messaggi nei canali a cui appartengo, nonché menzioni/DM non letti.
Speravo che andando su /session/current.json avrei potuto vedere qualcosa lì che potessi usare per questo, ma non ho visto nulla di utile.
Esiste un endpoint API che posso utilizzare per capire se ci sono nuovi messaggi in base al “chat_header_indicator_preference” di un utente?
Grazie @j.jaffeux. Sto esaminando /chat/api/me/channels e vedo sotto tracking che posso scorrere tutti i canali e vedere se unread_count per uno qualsiasi dei canali è > 0, il che è utile.
Ma questo non sembra avere nulla a che fare con chat_header_indicator_preference di un utente e inoltre non mi dice se ci sono stati DM o menzioni per l’utente.
In teoria posso provare a ricreare la logica di chat_header_indicator_preference controllando prima se l’utente ha impostato “all_new” e, in tal caso, verificando se tutti gli unread_count per i suoi canali sono 0 e se questi sono tutti 0, quindi controllando i DM/menzioni non letti.
Ma spero che ci possa essere un modo migliore per farlo… (e inoltre non sono sicuro di come ottenere quel secondo pezzo per i DM/menzioni non letti).
Un utente si aspetterebbe di vedere un badge rosso per le nuove attività solo in base a questa preferenza. Se qualcuno ha impostato “Tutti i nuovi messaggi”, mi aspetterei che ciò significhi che un badge apparirebbe se ci fosse qualsiasi nuova attività in uno qualsiasi dei canali in cui si trova o se è stato menzionato o ha ricevuto un DM.
Mi hai mostrato come scorrere tutti i canali e vedere se ci sono messaggi non letti, ma 1) ciò non ha nulla a che fare con questa preferenza
2) ciò non mi aiuterebbe a capire se hanno messaggi diretti o menzioni
Idealmente, speravo di trovare un endpoint che mi aiutasse a mostrare un badge in base alla chat_header_indicator_preference del cliente.
Se ciò non fosse possibile, allora sembra che dovrei prima verificare se hanno messaggi non letti nella “sezione di tracciamento” di chat/api/me/channels, e poi controllare una seconda posizione per vedere se hanno avuto DM/menzioni.
Non so dove sarebbe questa seconda posizione, ma speravo che qualcun altro qui potesse indicarmi la giusta direzione.
Nel tracciamento, c’è un modo per sapere quali canali sono DM e quali sono pubblici?
Se un utente ha chat_header_indicator_preference impostato su “Messaggi diretti e menzioni”, non vorrei mostrare un badge per i nuovi messaggi normali in un canale.