CLIGestionar publicaciones

CLI

Gestionar publicaciones

Crea, programa, lista, edita y borra publicaciones desde el terminal: borradores, varias redes, medios, simulaciones y un cuerpo JSON completo.

Cada publicación pertenece a un establecimiento, así que pasas su id con -e. Lo encuentras con sofia establishments:list (ver cuentas).

Crear publicaciones

Publicar una publicación

Sin fecha, la publicación sale de inmediato.

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

Opciones

OpciónFunción
-e, --establishmentEl id del establecimiento (obligatorio, salvo con --json).
-p, --platformsLas redes, separadas por comas (instagram,facebook,x,linkedin,tiktok); obligatorio, salvo con --json.
-c, --contentEl texto de la publicación.
-s, --dateLa fecha de programación (ISO 8601); sin ella, la publicación sale enseguida.
-m, --mediaIds de medios o direcciones https, separados por comas.
-f, --formatEl formato: post, reel, story, carousel…
-a, --accountLa cuenta conectada desde la que publicar.
--draftGuarda un borrador que nada envía.
--dry-runComprueba la publicación sin escribir nada.
--idempotency-keyRepite la misma petición como una sola.
-j, --jsonUn archivo con el cuerpo completo; sustituye a las opciones de contenido.

Programar una publicación

Pasa una fecha ISO 8601 con -s, --date.

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

Guardar un borrador

--draft guarda la publicación sin publicarla ni programarla.

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

Añadir medios

-m, --media acepta ids de medios de tu biblioteca o direcciones https, separados por comas.

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

Para una dirección, el tipo se deduce de la extensión: vídeo para mp4, mov, webm y m4v, imagen en los demás casos. Para subirlo antes, ver medios.

Varias redes a la vez

Indica las redes separadas por comas en -p, --platforms. Cada una recibe el mismo texto.

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

Simulación

--dry-run comprueba la publicación con las reglas de cada red y no publica nada. Ver Simulación.

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

Idempotencia

Repite un comando sin riesgo con --idempotency-key: la misma clave da la misma publicación, nunca dos. Ver Idempotencia.

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

Cuerpo completo desde un archivo

Para un texto por red, varios medios o una programación de una vez, escribe todo el cuerpo en un archivo y pásalo con -j, --json. Sustituye a las opciones de contenido.

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

Listar publicaciones

Filtra la lista con estas opciones. La respuesta está paginada: ver Paginación.

  • -e, --establishment: solo este establecimiento.
  • --status: solo las publicaciones con este estado.
  • --limit y --cursor: el tamaño de página y desde dónde continuar.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --limit 20

Filtrar por periodo

--from y --to: un rango de fechas.

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

Filtrar por autor

--created-by me|app: las que escribiste tú o las creadas por la API.

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

Leer y modificar una publicación

posts:update cambia la fecha (-s), el estado (draft o scheduled) o todo el cuerpo 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

Cambiar el estado de una publicación

posts:update --status pasa una publicación de borrador a programada, y al revés.

sofia posts:update $POST_ID --status draft
sofia posts:update $POST_ID --status scheduled -s 2026-11-08T09:00:00Z
  • --status scheduled -s <fecha> programa un borrador en esa fecha.
  • --status draft vuelve a convertir una publicación programada en borrador: conserva su contenido, pierde su fecha y ya no saldrá.

Eliminar una publicación

sofia posts:delete $POST_ID

Automatizar con jq

Como la salida es JSON, jq extrae lo que necesitas: ids, estados, el cursor de la página siguiente.

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

Siguiente: cuentas y medios.

¿Te ha resultado útil esta página?