CLIGestire le pubblicazioni

CLI

Gestire le pubblicazioni

Crea, programma, elenca, modifica ed elimina post dal terminale: bozze, più reti, media, prove a vuoto e un corpo JSON completo.

Ogni post appartiene a un’attività, quindi ne passi l’id con -e. Lo trovi con sofia establishments:list (vedi account).

Creare post

Pubblicare un post

Senza data, il post esce subito.

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

Opzioni

OpzioneRuolo
-e, --establishmentL’id dell’attività (obbligatorio, tranne con --json).
-p, --platformsLe reti, separate da virgole (instagram,facebook,x,linkedin,tiktok); obbligatorio, tranne con --json.
-c, --contentIl testo del post.
-s, --dateLa data di programmazione (ISO 8601); senza, il post parte subito.
-m, --mediaId di media o indirizzi https, separati da virgole.
-f, --formatIl formato: post, reel, story, carousel…
-a, --accountL’account collegato da cui pubblicare.
--draftSalva una bozza che nulla invia.
--dry-runVerifica il post senza scrivere nulla.
--idempotency-keyRipete la stessa richiesta come una sola.
-j, --jsonUn file con il corpo completo; sostituisce le opzioni di contenuto.

Programmare un post

Passa una data ISO 8601 con -s, --date.

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

Salvare una bozza

--draft salva il post senza pubblicarlo né programmarlo.

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

Aggiungere media

-m, --media accetta id di media della tua libreria o indirizzi https, separati da virgole.

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

Per un indirizzo, il tipo si deduce dall’estensione: video per mp4, mov, webm e m4v, altrimenti immagine. Per caricare prima, vedi media.

Più reti insieme

Indica le reti separate da virgole in -p, --platforms. Ognuna riceve lo stesso testo.

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

Prova a vuoto

--dry-run verifica il post con le regole di ogni rete e non pubblica nulla. Vedi Prova a vuoto.

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

Idempotenza

Rilancia un comando in sicurezza con --idempotency-key: la stessa chiave dà lo stesso post, mai due. Vedi Idempotenza.

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

Corpo completo da un file

Per un testo diverso per rete, più media o una programmazione in un colpo solo, scrivi l’intero corpo in un file e passalo con -j, --json. Sostituisce le opzioni di contenuto.

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"
}

Elencare i post

Filtra l’elenco con queste opzioni. La risposta è paginata: vedi Paginazione.

  • -e, --establishment: solo questa attività.
  • --status: solo i post con questo stato.
  • --limit e --cursor: la dimensione della pagina e da dove riprendere.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --limit 20

Filtrare per periodo

--from e --to: un intervallo di date.

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

Filtrare per autore

--created-by me|app: i post scritti da te o creati tramite API.

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

Leggere e modificare un post

posts:update cambia la data (-s), lo stato (draft o scheduled) o l’intero corpo con -j.

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

Cambiare lo stato di un post

posts:update --status porta un post da bozza a programmato, e viceversa.

sofia posts:update $POST_ID --status draft
sofia posts:update $POST_ID --status scheduled -s 2026-11-08T09:00:00Z
  • --status scheduled -s <data> programma una bozza a quella data.
  • --status draft riporta un post programmato a bozza: conserva il contenuto, perde la data e non partirà più.

Eliminare un post

sofia posts:delete $POST_ID

Script con jq

Poiché l’output è JSON, jq estrae ciò che serve: id, stati, il cursore della pagina successiva.

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

Poi: account e media.

Questa pagina ti è stata utile?