CLI
Introduzione
Installa il comando sofia, accedi e pubblica dal terminale: post, media, account, statistiche e webhook, con output JSON pronto per gli script.
La CLI di Sofia racchiude l’API Sofia v1 in un solo comando, sofia. Ogni comando si scrive risorsa:azione e ogni risposta è JSON: puoi concatenarla con jq, cron job e pipeline CI.
Installazione
La CLI è pubblicata su npm come pacchetto sofia-post; il comando installato è sofia.
npm install -g sofia-postpnpm install -g sofia-postyarn global add sofia-postControlla l’installazione ed elenca tutti i comandi. Aggiungi --help a un comando per vederne le opzioni.
sofia --help
sofia posts:create --help
sofia --versionPer iniziare
Accedi dal browser, trova la tua attività e pubblica un primo post.
sofia auth:login
sofia establishments:list
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour"Comandi
| Comando | Cosa fa |
|---|---|
auth:login, auth:status, auth:logout | Accedere dal browser, vedere chi sei, uscire. |
me | Mostra l’account per cui agisce la CLI. |
platforms:list | Elenca le reti su cui Sofia pubblica e le loro regole. |
establishments:list | Elenca le tue attività. |
accounts:list, accounts:connect | Elenca gli account collegati o ottiene un link per collegarne uno. |
posts:create, posts:list, posts:get, posts:update, posts:delete | Pubblicare, programmare, elencare, modificare ed eliminare post. |
media:upload, media:list, media:get, media:delete | Carica un file o un indirizzo https nella libreria media e la gestisce. |
insights:get | Legge le statistiche di un’attività. |
webhooks:create, webhooks:list, webhooks:delete, webhooks:test | Registrare, elencare, eliminare e testare i webhook. |
Output JSON
Ogni comando stampa su stdout il corpo JSON dell’API, indentato. Passalo a jq per estrarre ciò che ti serve.
sofia establishments:list | jq '.data[].id'In caso di errore, la busta di errore dell’API (o un errore locale della stessa forma) va su stderr e il codice di uscita è 1.
{ "error": { "code": "invalid_request", "message": "…", "details": [ … ] } }Un’eliminazione risponde { "deleted": true, "id": "…" }. Poi: l’autenticazione e i post.