Le post_count de l'utilisateur est zéro dans le webhook pour un utilisateur qui a des posts

Nous avons un webhook sur l’événement « user_logged_in ». La charge utile contient la propriété post_count pour l’utilisateur qui vient de se connecter. Bien que l’utilisateur ait écrit 2 messages, la charge utile indique post_count: 0. Cela ressemble à un bug.

Le destinataire du webhook a besoin de cette statistique utilisateur pour décider comment procéder.

Le seul sujet similaire que j’ai trouvé est celui-ci, il pourrait être lié mais ne parle pas de la même API : Category post_count not incrementing

1 « J'aime »

Je dois me corriger : le post_count n’est pas toujours zéro. En vérifiant avec mon propre utilisateur, le post_count était plausible (bien que je ne sache pas s’il est exact ou non).

Mais il y a un utilisateur sur notre site, appelons-le l’utilisateur n° 1234, pour lequel ce qui suit est vrai :

  • SELECT * FROM posts WHERE user_id=1234 renvoie deux entrées dans la table. Ce sont les publications qui sont également répertoriées sur la page d’activité du profil de l’utilisateur.
  • La charge utile du webhook, lorsque cet utilisateur se connecte ou se déconnecte, contient \"post_count\": 0.
1 « J'aime »

Salut @dpb,

J’ai testé et le nombre de publications n’est pas mis à jour en temps réel.

Je suppose qu’il y a un job Sidekiq qui s’en occupe périodiquement, mais je ne sais pas lequel.
Il ne semble pas y avoir de job Sidekiq spécifique lié à cela :thinking:
Mais j’ai lu que cette statistique est mise à jour au moins une fois par jour.

Une requête GET vers https://your-discourse.org/u/username.json renverra le bon nombre, cependant.

Si vous voulez un nombre fiable, effectuez une telle requête après avoir reçu la charge utile du webhook.

1 « J'aime »

Merci @Canapin pour avoir suggéré la requête GET à l’API.

Dans notre cas, les publications sont là depuis plus d’un mois maintenant.

Peut-être que le composant qui met à jour ce nombre a cessé de fonctionner à un moment arbitraire lors d’une des mises à jour ?

Testé, ça ne fonctionne pas non plus. Contient les mêmes informations : post_count: 0

Peut-être y a-t-il une confusion entre « topics » et « posts ». Je m’attendais à ce que la création d’un nouveau sujet soit juste un type spécial de publication. La structure de la base de données le prend en charge.
Mais en vérifiant les statistiques du profil utilisateur, ils disent quelque chose comme « 2 sujets créés, 0 publication créée ».
Alors peut-être que le « post_count » que j’obtiens est plutôt le nombre de réponses aux sujets que le nombre total de publications ?
D’un autre côté, il y a une date « last_posted_at » qui contient la date de création du dernier sujet. Il y a donc au moins une incohérence dans la dénomination ici. Je m’attendrais à ce que le nombre « post_count » inclue également les premières publications dans de nouveaux sujets.

Quoi qu’il en soit, que ce soit un comportement intentionnel ou non, je ne trouve pas de topic_count ou similaire dans le JSON utilisateur. Comment puis-je connaître le nombre total de publications, y compris les nouveaux sujets ?

Mes connaissances en JSON sont un peu naissantes mais je peux voir le topic_count dans https://meta.discourse.org/u/dpb/summary.json

1 « J'aime »