CLIBeiträge verwalten

CLI

Beiträge verwalten

Beiträge im Terminal erstellen, planen, auflisten, bearbeiten und löschen: Entwürfe, mehrere Netzwerke, Medien, Probeläufe und ein vollständiger JSON-Body.

Jeder Beitrag gehört zu einem Betrieb, deshalb übergibst du dessen ID mit -e. Du findest sie mit sofia establishments:list (siehe Konten).

Beiträge erstellen

Beitrag veröffentlichen

Ohne Datum wird der Beitrag sofort veröffentlicht.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour"

Optionen

OptionZweck
-e, --establishmentDie ID des Betriebs (Pflicht, außer mit --json).
-p, --platformsDie Netzwerke, durch Kommas getrennt (instagram,facebook,x,linkedin,tiktok); Pflicht, außer mit --json.
-c, --contentDer Text des Beitrags.
-s, --dateDas Planungsdatum (ISO 8601); ohne Datum geht der Beitrag sofort raus.
-m, --mediaMedien-IDs oder https-Adressen, durch Kommas getrennt.
-f, --formatDas Format: post, reel, story, carousel…
-a, --accountDas verbundene Konto, von dem aus veröffentlicht wird.
--draftSpeichert einen Entwurf, den nichts versendet.
--dry-runPrüft den Beitrag, ohne etwas zu schreiben.
--idempotency-keyWiederholt dieselbe Anfrage als eine einzige.
-j, --jsonEine Datei mit dem vollständigen Body; sie ersetzt die Inhaltsoptionen.

Beitrag planen

Übergib mit -s, --date ein Datum im ISO-8601-Format.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" -s 2026-11-07T09:00:00Z

Entwurf speichern

--draft speichert den Beitrag, ohne ihn zu veröffentlichen oder zu planen.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" --draft

Medien hinzufügen

-m, --media nimmt Medien-IDs aus deiner Mediathek oder https-Adressen, durch Kommas getrennt.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
  -m $MEDIA_ID,https://images.example.com/tarte-tatin.jpg

Bei einer Adresse ergibt sich der Typ aus der Endung: Video für mp4, mov, webm und m4v, sonst Bild. Zum vorherigen Hochladen siehe Medien.

Mehrere Netzwerke gleichzeitig

Nenne die Netzwerke durch Kommas getrennt in -p, --platforms. Jedes erhält denselben Text.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram,facebook,linkedin -c "Tarte tatin du jour"

Probelauf

--dry-run prüft den Beitrag gegen die Regeln jedes Netzwerks und veröffentlicht nichts. Siehe Probelauf.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" --dry-run

Idempotenz

Mit --idempotency-key lässt sich ein Befehl gefahrlos wiederholen: derselbe Schlüssel ergibt denselben Beitrag, nie zwei. Siehe Idempotenz.

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
  --idempotency-key brunch-2026-11-07

Vollständiger Body aus einer Datei

Für Text pro Netzwerk, mehrere Medien oder einen Zeitplan in einem Zug schreibst du den ganzen Body in eine Datei und übergibst ihn mit -j, --json. Er ersetzt die Inhaltsoptionen.

sofia posts:create --json post.json
{
  "establishmentId": "$ESTABLISHMENT_ID",
  "targets": [
    {
      "platform": "instagram",
      "text": "Tarte tatin du jour",
      "media": [{ "id": "$MEDIA_ID" }],
      "format": "post"
    },
    {
      "platform": "tiktok",
      "text": "Tarte tatin du jour",
      "media": [{ "url": "https://images.example.com/tarte-tatin.mp4", "type": "video" }]
    }
  ],
  "scheduledAt": "2026-11-07T09:00:00Z",
  "status": "scheduled"
}

Beiträge auflisten

Filtere die Liste mit diesen Optionen. Die Antwort ist paginiert: siehe Paginierung.

  • -e, --establishment: nur dieser Betrieb.
  • --status: nur Beiträge mit diesem Status.
  • --limit und --cursor: die Seitengröße und die Stelle zum Weitermachen.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --limit 20

Nach Zeitraum filtern

--from und --to: ein Zeitraum.

sofia posts:list -e $ESTABLISHMENT_ID --from 2026-11-01 --to 2026-11-30

Nach Autor filtern

--created-by me|app: von dir selbst geschriebene Beiträge oder per API erstellte.

sofia posts:list -e $ESTABLISHMENT_ID --created-by app

Einen Beitrag lesen und ändern

posts:update ändert das Datum (-s), den Status (draft oder scheduled) oder mit -j den ganzen Body.

sofia posts:get $POST_ID
sofia posts:update $POST_ID -s 2026-11-08T09:00:00Z
sofia posts:update $POST_ID --json post.json

Den Status eines Beitrags ändern

posts:update --status macht aus einem Entwurf einen geplanten Beitrag und umgekehrt.

sofia posts:update $POST_ID --status draft
sofia posts:update $POST_ID --status scheduled -s 2026-11-08T09:00:00Z
  • --status scheduled -s <Datum> plant einen Entwurf zu diesem Datum ein.
  • --status draft macht aus einem geplanten Beitrag wieder einen Entwurf: Er behält seinen Inhalt, verliert sein Datum und geht nicht mehr raus.

Einen Beitrag löschen

sofia posts:delete $POST_ID

Mit jq skripten

Da die Ausgabe JSON ist, holt jq heraus, was du brauchst: IDs, Status, den Cursor der nächsten Seite.

sofia posts:list -e $ESTABLISHMENT_ID --status scheduled | jq '.data[] | {id, status}'
sofia posts:list -e $ESTABLISHMENT_ID | jq -r '.nextCursor'

Weiter mit Konten und Medien.

War diese Seite hilfreich?