L’API di GetQR è in beta ed è disponibile per alcuni workspace selezionati. I dettagli possono cambiare prima del rilascio generale.
Prima di iniziare
- Ruolo. Per impostare regole, mettere in pausa, riattivare ed eliminare serve l’accesso in scrittura ai QR code del workspace. Consulta Autenticazione.
- Abbonamento. Ogni richiesta API, comprese queste, richiede un abbonamento attivo del proprietario del workspace.
L’oggetto access
Invia un oggettoaccess quando crei o aggiorni un QR code:
I campi che ometti restano invariati. Invia
null per cancellare una regola. Un oggetto access parziale non reimposta mai le regole che non hai indicato.
Pianifica un inizio e una fine
activeAt e pauseAt sono indipendenti: imposta uno dei due o entrambi. Entrambi accettano date e ore ISO 8601, con Z o con uno scostamento da UTC.
null per cancellare la pianificazione. Così il QR code diventa attivo subito e la data di fine viene rimossa:
Limite di scansioni
Limita il numero totale di scansioni. Oltre quel numero, il QR code smette di risolversi:- Aumentare il limite libera esattamente (nuovo limite meno scansioni totali) scansioni aggiuntive.
- Ridurre il limite sotto il totale attuale blocca subito il QR code.
- Impostare un limite in seguito conta anche le scansioni effettuate mentre non c’era alcun limite.
scanLimit deve essere un numero intero positivo, fino a 2147483647. Invia null per nessun limite.
Protezione con password
Imposta una password tramite lo stesso oggettoaccess. Quando disattivi la protezione, la password salvata viene mantenuta, così puoi riattivarla senza inviarla di nuovo.
1
Imposta o cambia la password
In questo modo si attiva anche la protezione.
2
Disattiva la protezione
La password salvata viene mantenuta.
3
Riattiva la protezione
Non serve inviare di nuovo la password. Funziona solo se una password è già stata impostata. Altrimenti la richiesta riceve
422.- In creazione. Invia
passwordper attivare la protezione.passwordProtectedda solo non ha effetto finché non esiste una password. - Rimuovere la password. Invia
"password": null. Anche la protezione viene disattivata. - Lettura. Le risposte non restituiscono mai la password, solo
access.passwordProtected.
Pausa, riattivazione ed eliminazione
La pausa e la riattivazione sono endpoint separati e non campi diaccess, perché hanno effetto immediato invece che secondo una pianificazione.
Pausa e riattivazione non richiedono un corpo della richiesta e restituiscono il QR code aggiornato:
PUT /api/v1/qrs/{qrId} e { "archived": true }, oppure con archived in una PATCH. Consulta Imposta lo stato di pausa.
L’eliminazione rimuove insieme il QR code e il suo link breve:
Quando hanno effetto le modifiche
- Scansione successiva. Le regole vengono verificate al momento della scansione, quindi una modifica vale dalla scansione successiva, non in modo retroattivo.
- Pagina di pausa. Un QR code bloccato da una pianificazione, da un limite di scansioni o da una pausa mostra la pagina di pausa. La scansione non viene reindirizzata.
- Password. I visitatori che hanno già inserito la password mantengono l’accesso finché la password non cambia, o finché la protezione non viene disattivata e riattivata.
- Orologio. Le pianificazioni usano l’orologio del server in UTC, non l’ora locale del visitatore.
- Regole combinate. Un QR code si risolve solo se non è in pausa, rientra nella sua pianificazione e non ha superato il limite di scansioni.
Problemi comuni
422 quando imposto una regola in link
422 quando imposto una regola in link
Invia la regola in
access, non in link.422 quando attivo la protezione con password
422 quando attivo la protezione con password
Il QR code non ha ancora una password. Invia
password invece di passwordProtected: true.Il QR code mostra ancora la pagina di pausa dopo la riattivazione
Il QR code mostra ancora la pagina di pausa dopo la riattivazione
È ancora valida una pianificazione o un limite di scansioni. Controlla
access.activeAt, access.pauseAt e access.scanLimit nel QR code e confronta scans con il limite.Mi serve che il link scada
Mi serve che il link scada
link.expiresAt non è disponibile in questa API. Usa invece access.pauseAt.