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

PermessoCosa legge il titolareCosa consentePiano
orders:readVedere gli ordiniGET /orders, GET /orders/{id}; eventi order.*.tutti i piani
orders:writeAccettare, rifiutare e far avanzare gli ordiniIn più accettare, rifiutare, annullare, far avanzare e prendere in carico: POST /orders/{id}/accept, reject, cancel, status e acknowledge.tutti i piani
menu:readVedere il menuGET /menu e gli elenchi del menu; eventi menu.*.tutti i piani
menu:writeModificare 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:readVedere orari, stato e tavoliGET /store, orari di apertura, giorni speciali, GET /tables, GET /areas; eventi store.*.tutti i piani
store:writeMettere in pausa gli ordini online, cambiare orari e tempi di preparazioneIn più pausa e ripresa, PATCH /store, PUT /store/hours e giorni speciali.tutti i piani
reservations:readVedere le prenotazioniGET /reservations, singole prenotazioni, orari liberi, più GET /tables e GET /areas per risolvere table_ids; eventi reservation.*.da Pro
reservations:writeCreare, confermare e modificare le prenotazioniIn più creare, modificare e impostare lo stato.da Pro
reports:readVedere fatturato e venditeGET /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.

EventiPermesso 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.