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
| Opzione | Ruolo |
|---|---|
-e, --establishment | L’id dell’attività (obbligatorio, tranne con --json). |
-p, --platforms | Le reti, separate da virgole (instagram,facebook,x,linkedin,tiktok); obbligatorio, tranne con --json. |
-c, --content | Il testo del post. |
-s, --date | La data di programmazione (ISO 8601); senza, il post parte subito. |
-m, --media | Id di media o indirizzi https, separati da virgole. |
-f, --format | Il formato: post, reel, story, carousel… |
-a, --account | L’account collegato da cui pubblicare. |
--draft | Salva una bozza che nulla invia. |
--dry-run | Verifica il post senza scrivere nulla. |
--idempotency-key | Ripete la stessa richiesta come una sola. |
-j, --json | Un 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:00ZSalvare una bozza
--draft salva il post senza pubblicarlo né programmarlo.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" --draftAggiungere 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.jpgPer 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-runIdempotenza
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-07Corpo 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.--limite--cursor: la dimensione della pagina e da dove riprendere.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --limit 20Filtrare per periodo
--from e --to: un intervallo di date.
sofia posts:list -e $ESTABLISHMENT_ID --from 2026-11-01 --to 2026-11-30Filtrare per autore
--created-by me|app: i post scritti da te o creati tramite API.
sofia posts:list -e $ESTABLISHMENT_ID --created-by appLeggere 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.jsonCambiare 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 draftriporta un post programmato a bozza: conserva il contenuto, perde la data e non partirà più.
Eliminare un post
sofia posts:delete $POST_IDScript 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'