Lebenszyklus eines Posts
Die Status, die ein Post und jedes seiner Konten durchlaufen, und was du in jedem Status mit einem Post tun kannst.
Ein Post geht an ein oder mehrere Konten. Jedes Konto bekommt ein Target mit eigenem Status, und der Status des Posts fasst seine Targets zusammen. Diese Seite zeigt, wie sich beide ändern und welche Aufrufe wann erlaubt sind.
Status des Posts
| Status | Bedeutung |
|---|---|
draft | Ohne Zeit gespeichert. Nichts passiert, bis du ihn planst oder veröffentlichst |
scheduled | Wartet auf seine Zeit. publishNow und POST /posts/{id}/publish antworten ebenfalls mit scheduled und fangen sofort an zu senden |
publishing | Mindestens ein Konto wird gerade gesendet oder wartet auf eine automatische Wiederholung |
published | Jedes Konto ist veröffentlicht |
partially_failed | Jedes Konto ist fertig; einige veröffentlicht, einige fehlgeschlagen |
failed | Jedes Konto ist fertig, und keins wurde veröffentlicht |
Geplante Posts werden einmal pro Minute abgeholt, ein Post geht also etwa innerhalb einer Minute nach seiner Zeit raus.
Status der Targets
Jeder Eintrag in targets[] hat seinen eigenen Status: draft, scheduled, publishing, published oder failed. Ein fehlgeschlagenes Target hat einen error mit code, category und source, die sagt, wer den Fehler beheben kann, siehe Publishing errors. Ein veröffentlichtes Target hat platformPostId und platformUrl.
Wenn eine Plattform drosselt oder ausfällt, zeigt das Target failed mit seinem Fehler, während FeedHorizon auf den nächsten Versuch wartet (insgesamt 3 Versuche, nach 2 und nach 10 Minuten). Der Post bleibt in dieser Zeit publishing. Erst wenn der letzte Versuch fehlschlägt oder der Fehler nicht wiederholt wird, gilt das Target endgültig als fehlgeschlagen, und post.target.failed wird gesendet.
Was du in welchem Status tun kannst
| Aufruf | draft | scheduled | publishing | published | partially_failed | failed |
|---|---|---|---|---|---|---|
PATCH /posts/{id} (bearbeiten) | Ja | Ja | Nein | Nein | Nein | Ja |
POST /posts/{id}/publish | Ja | Ja | Nein | Nein | Nein | Ja |
POST /posts/{id}/cancel | Nein | Ja | Nein | Nein | Nein | Nein |
POST /posts/{id}/retry | Nein | Nein | Nur fehlgeschlagene Targets | Nein | Ja | Ja |
POST /posts/{id}/duplicate | Ja | Ja | Ja | Ja | Ja | Ja |
DELETE /posts/{id} | Ja | Ja | Nein | Ja | Ja | Ja |
- Bearbeiten wird mit
409 post_not_editableabgelehnt, sobald ein Konto gerade veröffentlicht oder veröffentlicht ist. Um den Text eines Posts zu ändern, der teilweise live ist, kopierst du ihn. - Erneut versuchen sendet nur die fehlgeschlagenen Konten noch einmal; veröffentlichte bleiben, wie sie sind. Ist kein Konto fehlgeschlagen, kommt
409 post_not_failed. - Abbrechen nimmt einen geplanten Post aus der Planung und behält ihn als Entwurf. Bei jedem anderen Status kommt
409 post_not_scheduled. - Löschen entfernt den Post aus FeedHorizon. Posts, die schon live sind, bleiben auf den Plattformen. Während ein Konto gesendet wird, antwortet Löschen mit
409 post_publishing; versuch es ein paar Sekunden später noch einmal.
Live-Post per Kopie ändern
Ein Post, der teilweise oder ganz live ist, lässt sich nicht bearbeiten, weil der live geschaltete Teil sonst nicht mehr zu ihm passen würde. Um eine korrigierte Fassung zu posten, zum Beispiel nach platform_rejected auf einem Konto:
POST /posts/{id}/duplicatelegt einen Entwurf mit demselben Text, denselben Medien, Konten und eigenen Texten an.- Ändere die Kopie per
PATCH: Behalte intargetsnur die fehlgeschlagenen Konten und korrigiere den Text. - Plane oder veröffentliche die Kopie.
Webhooks unterwegs
| Wann | Event |
|---|---|
| Ein Post bekommt eine Zeit (geplant angelegt, oder ein Entwurf wird geplant) | post.scheduled |
| Text, Zeit, Konten oder Status ändern sich | post.updated |
| Ein Konto wurde veröffentlicht | post.target.published |
| Ein Konto ist endgültig fehlgeschlagen | post.target.failed |
| Alle Konten sind fertig | post.published, post.partial oder post.failed |
| Der Post wurde gelöscht | post.deleted |
Den Payload jedes Events findest du unter Webhook events.