Как найти удалённые посты через API?

Я пытаюсь использовать API для ведения списка последних постов. Это хорошо работает с posts.json.

Но проблема, с которой я столкнулся, заключается в том, что удалённые посты не отображаются в posts.json. И, похоже, нет файла posts_deleted.json или чего-то подобного.

Так как же через API найти все удалённые посты? Это кажется простой задачей, но я не могу сообразить. Я что-то упускаю?

Я не думаю, что это возможно. Может быть, если вы расскажете подробнее, зачем вам нужно искать удалённые сообщения через API, кто-нибудь предложит альтернативные способы решения вашей задачи.

Один из вариантов — настроить вебхук события сообщения (Post Event webhook) на внешний сервис. Этот вебхук будет срабатывать при создании, редактировании, удалении или восстановлении сообщения. Возможно, этот вебхук предоставит вам необходимую информацию.

Я использую API для хранения постов в своей базе данных, чтобы не обращаться к API каждый раз при отображении данных для каждого пользователя. Это также позволяет мне полностью связать данные со всеми моими таблицами, добавлять их в представления и т. д.

Затем я могу отображать информацию о постах на своём веб-сайте вне Discourse.

Но поскольку, судя по всему, нет способа узнать, когда посты удаляются, в итоге я показываю некоторые удалённые посты, и люди не понимают, почему ссылки не работают корректно.

Не понимаю, почему нет способа найти удалённые посты? Это кажется очень очевидным инструментом. Даже в posts.json есть поле «user deleted», но, судя по всему, это поле никогда не может быть истинным, поскольку posts.json никогда не показывает удалённые посты. Значит, либо это поле не должно существовать, либо posts.json должен отображать удалённые посты.

Это отличный подход!

Я думаю, что для этого подойдёт настройка вебхука события поста на ваше приложение. Когда пост удаляется, заголовок вебхука X-Discourse-Event будет установлен в значение post_destroyed. Вы можете сохранять идентификаторы удалённых постов в своём приложении и исключать эти посты при отображении контента Discourse на вашем сайте.