La API de GetQR está en beta y solo está disponible para algunos espacios de trabajo. Los detalles pueden cambiar antes del lanzamiento general.
Antes de empezar
- Rol. Para definir reglas, pausar, reactivar y eliminar necesitas acceso de escritura a los códigos QR del espacio de trabajo. Consulta Autenticación.
- Suscripción. Todas las solicitudes a la API, incluidas estas, requieren que el propietario del espacio de trabajo tenga una suscripción activa.
El objeto de acceso
Envía un objetoaccess al crear o actualizar un código QR:
Los campos que omites no cambian. Envía
null para borrar una regla. Un objeto access parcial nunca restablece las reglas que no mencionas.
Programa un inicio y un final
activeAt y pauseAt son independientes: define uno de ellos o ambos. Los dos aceptan fechas y horas ISO 8601, con Z o un desfase respecto a UTC.
null para borrar la programación. El código QR pasa a estar activo de inmediato y se elimina la fecha de fin:
Límite de escaneos
Limita el número total de escaneos. Al alcanzarlo, el código QR deja de resolverse:- Subir el límite libera exactamente (nuevo límite menos escaneos totales) escaneos más.
- Bajar el límite por debajo del total actual bloquea el código QR de inmediato.
- Definir un límite más tarde cuenta los escaneos realizados mientras no había límite.
scanLimit debe ser un número entero positivo, hasta 2147483647. Envía null para que sea ilimitado.
Protección con contraseña
Define una contraseña con el mismo objetoaccess. La contraseña guardada se conserva cuando desactivas la protección, así que puedes volver a activarla sin enviarla de nuevo.
1
Define o cambia la contraseña
Esto también activa la protección.
2
Desactiva la protección
La contraseña guardada se conserva.
3
Vuelve a activar la protección
No hace falta reenviar la contraseña. Solo funciona si ya se ha definido una contraseña. Si no, la solicitud devuelve
422.- Al crear. Envía
passwordpara activar la protección.passwordProtectedpor sí solo no tiene efecto hasta que exista una contraseña. - Quitar la contraseña. Envía
"password": null. La protección también se desactiva. - Lectura. Las respuestas nunca devuelven la contraseña, solo
access.passwordProtected.
Pausar, reactivar y eliminar
Pausar y reactivar son endpoints independientes en lugar de campos deaccess, porque surten efecto al instante y no según una programación.
Pausar y activar no llevan cuerpo de solicitud y devuelven el código QR actualizado:
PUT /api/v1/qrs/{qrId} y { "archived": true }, o con archived en un PATCH. Consulta Establecer el estado de pausa.
Eliminar borra a la vez el código QR y su enlace corto:
Cuándo entran en vigor los cambios
- Siguiente escaneo. Las reglas se comprueban al escanear un código, así que un cambio se aplica desde el siguiente escaneo, no de forma retroactiva.
- Página de pausa. Un código QR bloqueado por una programación, un límite de escaneos o una pausa muestra la página de pausa. El escaneo no se redirige.
- Contraseña. Los visitantes que ya introdujeron la contraseña mantienen el acceso hasta que la contraseña cambia, o hasta que la protección se desactiva y se vuelve a activar.
- Reloj. Las programaciones usan el reloj del servidor en UTC, no la hora local del visitante.
- Las reglas se combinan. Un código QR solo se resuelve si no está pausado, está dentro de su programación y no ha superado su límite de escaneos.
Problemas habituales
422 al definir una regla dentro de link
422 al definir una regla dentro de link
Envía la regla dentro de
access, no de link.422 al activar la protección con contraseña
422 al activar la protección con contraseña
El código QR todavía no tiene contraseña. Envía
password en lugar de passwordProtected: true.El código QR sigue mostrando la página de pausa después de reactivarlo
El código QR sigue mostrando la página de pausa después de reactivarlo
Todavía se aplica una programación o un límite de escaneos. Comprueba
access.activeAt, access.pauseAt y access.scanLimit en el código QR y compara scans con el límite.Necesito que el enlace caduque
Necesito que el enlace caduque
link.expiresAt no está disponible en esta API. Usa access.pauseAt en su lugar.