post_count пользователя в вебхуке равен нулю, хотя у пользователя есть посты

У нас есть вебхук на событие “user_logged_in”. В полезной нагрузке содержится свойство post_count для пользователя, который только что вошел в систему. Хотя пользователь написал 2 сообщения, в полезной нагрузке указано post_count: 0. На мой взгляд, это ошибка.

Получателю вебхука необходима эта статистика пользователя, чтобы принять решение о дальнейших действиях.

Единственная похожая тема, которую я нашел, это эта; возможно, она связана, но не касается того же самого API: Category post_count not incrementing

Я должен исправить себя: post_count не всегда равен нулю. При проверке с моим собственным аккаунтом post_count выглядел правдоподобно (хотя я не знаю, точен ли он).

Но есть пользователь на нашем сайте, назовём его пользователь #1234, для которого выполняется следующее:

  • SELECT * FROM posts WHERE user_id=1234 возвращает две записи в таблице. Это те посты, которые также отображаются на странице активности профиля пользователя.
  • В полезной нагрузке вебхука, когда этот пользователь входит в систему или выходит из неё, содержится "post_count": 0.

Привет, @dpb,

Я протестировал, и количество постов не обновляется в реальном времени.

Предполагаю, что за это периодически отвечает Sidekiq-задача, но не знаю, какая именно.
Кажется, что нет конкретной связанной Sidekiq-задачи :thinking:
Но я прочитал, что эта статистика обновляется хотя бы раз в день.

Однако GET-запрос к https://your-discourse.org/u/username.json вернёт правильное число.

Если вам нужно надёжное значение, сделайте такой запрос после получения вебхука.

Спасибо @Canapin за предложение сделать GET-запрос к API.

Что ж, в нашем случае посты существуют уже более месяца.

Возможно, компонент, отвечающий за обновление этого числа, перестал работать в какой-то произвольный момент во время одного из обновлений?

Проверил, тоже не работает. Содержит ту же информацию: post_count: 0

Возможно, здесь возникла путаница между «темами» и «сообщениями». Я ожидал, что создание новой темы — это просто особый тип сообщения. Структура базы данных это поддерживает.
Однако при проверке статистики профиля пользователя там указано что-то вроде «2 созданные темы, 0 созданных сообщений».
Так что, возможно, параметр «post_count», который я получаю, обозначает количество ответов на темы, а не общее количество всех сообщений?
С другой стороны, есть поле даты «last_posted_at», которое содержит дату создания последней темы. Так что, по крайней мере, здесь наблюдается некоторая несогласованность в именовании. Я ожидал, что значение «post_count» будет включать и первые сообщения в новых темах.

В любом случае, независимо от того, является ли это задуманным поведением, я не нахожу в JSON пользователя параметра topic_count или аналогичного. Как мне узнать общее количество сообщений, включая новые темы?

Мои знания JSON немного слабы, но я вижу topic_count в https://meta.discourse.org/u/dpb/summary.json