API を使って最近の投稿のリストを維持しようとしています。posts.json を使えばうまく動作します。
しかし、問題なのは削除された投稿が posts.json に表示されないことです。また、posts_deleted.json やそれに似たファイルも存在しないようです。
では、API を通じて削除された投稿をすべてどのようにして取得できるのでしょうか?これは簡単なことのように思えますが、見当がつきません。何か見落としているのでしょうか?
API を使って最近の投稿のリストを維持しようとしています。posts.json を使えばうまく動作します。
しかし、問題なのは削除された投稿が posts.json に表示されないことです。また、posts_deleted.json やそれに似たファイルも存在しないようです。
では、API を通じて削除された投稿をすべてどのようにして取得できるのでしょうか?これは簡単なことのように思えますが、見当がつきません。何か見落としているのでしょうか?
それは可能ではないと思います。API で削除された投稿を取得しようとしている理由について詳細を投稿していただければ、問題解決への別のアプローチについてアイデアを提供できるかもしれません。
一つの可能性として、ポストイベントの webhook を外部サービスに設定する方法があります。この webhook は、投稿が作成、編集、削除、または復元された際に発火します。おそらく、この webhook を通じて必要な情報が得られるでしょう。
API を使用して投稿をデータベースに保存することで、各ユーザーのデータを表示するたびに API を呼び出す必要がなくなります。これにより、データをすべてのテーブルと完全に連携させ、ビューに追加することも可能になります。
その後、Discourse 外部のウェブサイト上で投稿に関する情報を表示できます。
しかし、投稿が削除された時期を確認する方法がどうやら存在しないため、削除された投稿も表示されてしまい、リンクが正しく機能しない理由がユーザーに理解してもらえないという問題が発生しています。
なぜ削除された投稿を検出する方法がないのか理解できません。これは非常に明らかな機能のように思えます。posts.json には「user deleted」というフィールドすら存在しますが、削除された投稿は posts.json に表示されないため、このフィールドが True になることは決してありません。つまり、このフィールドが存在すべきではないか、あるいは削除された投稿も posts.json に表示されるべきではないでしょうか。
これは素晴らしいアプローチですね!
この場合、Post イベントの Webhook をあなたのアプリケーションに設定するのが有効です。投稿が削除されると、Webhook の X-Discourse-Event ヘッダーが post_destroyed に設定されます。削除された投稿の ID をあなたのアプリケーションで保存し、Discourse のコンテンツを表示する際にそれらの投稿を除外するように実装できます。