Ich versuche, über die API eine Liste der neuesten Beiträge zu führen. Das funktioniert mit posts.json gut.
Das Problem, das ich habe, ist jedoch, dass gelöschte Beiträge nicht in posts.json angezeigt werden. Und es scheint keine posts_deleted.json oder Ähnliches zu geben.
Wie kann ich also über die API alle gelöschten Beiträge finden? Das scheint eine einfache Sache zu sein, aber ich komme nicht drauf. Übersehe ich etwas?
Ich glaube nicht, dass das möglich ist. Vielleicht hat jemand Ideen für alternative Lösungsansätze, wenn du einige Details dazu postest, warum du versuchst, gelöschte Beiträge über die API zu finden.
Eine Möglichkeit wäre, dass du einen Post-Event-Webhook auf einen externen Dienst konfigurierst. Dieser Webhook wird ausgelöst, wenn ein Beitrag erstellt, bearbeitet, gelöscht oder wiederhergestellt wird. Möglicherweise liefert dir dieser Webhook die benötigten Informationen.
Ich nutze die API, um Beiträge in meiner Datenbank zu speichern, damit ich die API nicht jedes Mal aufrufen muss, wenn ich Daten für jeden Benutzer anzeigen möchte. Das ermöglicht mir zudem, die Daten vollständig mit all meinen Tabellen zu verknüpfen, sie in Ansichten einzubinden usw.
Anschließend kann ich Informationen über Beiträge auf meiner Website außerhalb von Discourse anzeigen.
Da es jedoch scheinbar keine Möglichkeit gibt, herauszufinden, wann Beiträge gelöscht wurden, zeige ich versehentlich einige gelöschte Beiträge an, und die Nutzer verstehen nicht, warum die Links nicht richtig funktionieren.
Ich verstehe nicht, warum es keine Möglichkeit gibt, gelöschte Beiträge zu finden? Das scheint ein sehr offensichtliches Werkzeug zu sein. Es gibt sogar ein Feld in posts.json für „user deleted“, aber dieses Feld kann scheinbar niemals den Wert True annehmen, da posts.json gelöschte Beiträge niemals anzeigt. Entweder sollte dieses Feld also nicht existieren, oder posts.json sollte gelöschte Beiträge anzeigen.
Ich denke, dass das Einrichten eines Post-Event-Webhooks auf Ihre Anwendung dafür funktionieren würde. Wenn ein Beitrag gelöscht wird, ist der Webhook-Header X-Discourse-Event auf post_destroyed gesetzt. Sie könnten die IDs der gelöschten Beiträge in Ihrer Anwendung speichern und diese Beiträge beim Anzeigen von Discourse-Inhalten auf Ihrer Website ausschließen.