API di FlavosoFondamentiPermessi
Permessi
Nove permessi stabiliscono cosa può fare la tua app. La scrittura include la lettura; le prenotazioni sono disponibili dal piano Pro.
Come funzionano i permessi
Nella console stabilisci quali permessi la tua app può richiedere; durante l'autorizzazione l'app li richiede con scope, separati da spazi. Il titolare li vede in parole chiare e li accetta tutti o nessuno.
La scrittura include la lettura: con orders:write un'app può anche leggere gli ordini. I permessi di un collegamento sono indicati nella risposta dell'endpoint del token sotto scope e in GET /me sotto scopes.
Richiedi solo ciò che serve alla tua app per il suo scopo. È proprio quello che verifica la revisione, e un titolare acconsente più volentieri se l'elenco è breve.
I nove permessi
| Permesso | Cosa legge il titolare | Cosa consente | Piano |
|---|---|---|---|
orders:read | Vedere gli ordini | GET /orders, GET /orders/{id}; eventi order.*. | tutti i piani |
orders:write | Accettare, rifiutare e far avanzare gli ordini | In più accettare, rifiutare, annullare, far avanzare e prendere in carico: POST /orders/{id}/accept, reject, cancel, status e acknowledge. | tutti i piani |
menu:read | Vedere il menu | GET /menu e gli elenchi del menu; eventi menu.*. | tutti i piani |
menu:write | Modificare il menu: piatti, categorie, opzioni, prezzi e disponibilità | In più PUT /menu, POST /menu/availability e creazione, modifica ed eliminazione di categorie, piatti, gruppi di opzioni e opzioni. | tutti i piani |
store:read | Vedere orari, stato e tavoli | GET /store, orari di apertura, giorni speciali, GET /tables, GET /areas; eventi store.*. | tutti i piani |
store:write | Mettere in pausa gli ordini online, cambiare orari e tempi di preparazione | In più pausa e ripresa, PATCH /store, PUT /store/hours e giorni speciali. | tutti i piani |
reservations:read | Vedere le prenotazioni | GET /reservations, singole prenotazioni, orari liberi, più GET /tables e GET /areas per risolvere table_ids; eventi reservation.*. | da Pro |
reservations:write | Creare, confermare e modificare le prenotazioni | In più creare, modificare e impostare lo stato. | da Pro |
reports:read | Vedere fatturato e vendite | GET /reports/sales, GET /reports/products. | tutti i piani |
Quando manca un permesso
Se manca un permesso, l'API risponde 403 insufficient_scope e l'intestazione WWW-Authenticate indica il permesso mancante. Il collegamento ottiene il permesso solo quando il titolare collega di nuovo la tua app con quel permesso.
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer realm="flavoso", error="insufficient_scope", scope="menu:write"
Content-Type: application/json
{
"error": {
"code": "insufficient_scope",
"message": "This connection lacks the 'menu:write' scope.",
"request_id": "req_4f0c2a9d1e7b3c5a8f6d2e10"
}
}Permessi ed eventi
Un evento mostra dati, quindi un collegamento lo riceve solo con il permesso di lettura corrispondente (o con il permesso di scrittura dello stesso gruppo). Vale allo stesso modo per i webhook e per GET /events.
| Eventi | Permesso richiesto |
|---|---|
order.* | orders:read |
reservation.* | reservations:read |
menu.* | menu:read |
store.* | store:read |
app.* | nessuno, solo il collegamento stesso |
Permessi e piani
L'API è inclusa in ogni piano e non costa nulla in più. Le prenotazioni sono disponibili dal piano Pro: in un locale con Starter gli endpoint delle prenotazioni rispondono 403 plan_required, anche se il collegamento ha il permesso. La schermata di consenso lo segnala, e GET /me indica il piano sotto plan.
Se l'abbonamento di un locale non è attivo, tutti gli endpoint tranne GET /me e DELETE /connection rispondono 403 account_inactive.
Cambiare i permessi
I permessi che la tua app può richiedere li cambi nella console. Dopo l'approvazione, i permessi aggiuntivi attendono una nuova revisione; fino ad allora vale l'elenco verificato.
I collegamenti esistenti mantengono i loro permessi. Un collegamento ottiene più permessi solo quando il titolare collega di nuovo la tua app con il nuovo scope. Dopodiché arriva app.scopes_changed con previous_scopes.
Qualcosa non è chiaro? Scrivi a support@flavoso.com indicando l'identificativo di X-Request-Id. Così troviamo la tua richiesta nel registro.