Estou integrando o Discourse em outro aplicativo e estou tentando verificar via API se alguém tem alguma atividade de chat pendente. Se houver alguma mensagem nova, quero apenas mostrar um selo vermelho.
Mais especificamente, estou tentando aproveitar as preferências que o cliente definiu em seu “chat_header_indicator_preference” e, no momento, defini para “all_new”, o que acho que deve mostrar quaisquer novas mensagens nos canais aos quais pertenço, bem como menções/DMs não lidas.
Eu esperava que, acessando /session/current.json, eu pudesse ver algo lá que pudesse usar para isso, mas não vi nada útil.
Existe algum endpoint de API que eu possa usar para entender se há novas mensagens com base no chat_header_indicator_preference de um usuário??
obrigado @j.jaffeux. Estou analisando /chat/api/me/channels e vejo em rastreamento que posso percorrer todos os canais e ver se o unread_count de algum dos canais é > 0, o que é útil.
Mas isso não parece ter nada a ver com a preferência chat_header_indicator_preference de um usuário e também não me diz se houve alguma DM ou menção para o usuário.
Em teoria, posso tentar recriar a lógica de chat_header_indicator_preference verificando primeiro se o usuário a definiu como “all_new” e, se for o caso, verificando se algum unread_counts de seus canais é > 0 e se todos são 0, então verificando DMs/menções não lidas.
Mas espero que haja uma maneira melhor de fazer isso… (e também não tenho certeza de como obter essa segunda parte para DMs/menções não lidas).
Qualquer ajuda / orientação seria muito apreciada.
Um usuário só esperaria ver um distintivo vermelho para novas atividades com base nesta preferência. Se alguém tiver “Todas as Novas Mensagens” definido, eu esperaria que isso significasse que um distintivo apareceria se houvesse alguma nova atividade em qualquer um dos canais em que eles estão ou se tivessem uma menção ou DM.
Você me mostrou como percorrer todos os canais e ver se há mensagens não lidas, mas 1) isso não tem nada a ver com essa preferência
2) isso não me ajudaria a entender se eles têm alguma Mensagem Direta ou Menção
Idealmente, eu esperava encontrar um endpoint que me ajudasse a mostrar um distintivo com base no chat_header_indicator_preference do cliente.
Se isso não for possível, então parece que eu precisaria primeiro verificar se eles têm mensagens não lidas na “seção de rastreamento” de chat/api/me/channels, e depois verificar um segundo local para ver se eles tinham DMs/menções.
Eu não sei onde seria esse segundo local, mas esperava que alguém aqui pudesse me indicar a direção certa.
No rastreamento, há alguma maneira de saber quais canais são DM e quais são públicos?
Se um usuário tiver chat_header_indicator_preference definido como “Mensagens Diretas e Menções”, eu não gostaria de mostrar um distintivo para novas mensagens regulares em um canal.