/oauth/tokeny/oauth/revokeresponden como OAuth: un JSON conerroryerror_description.- La API (
/v1) responde como siempre:application/problem+jsoncon sucode. Lee Errores.
La conexión: lo que vuelve a tu dirección de retorno
invalid_scope e invalid_target vuelven a tu web solo si quien conecta puede conectar tu app: una app en
desarrollo no le devuelve nada a alguien que no es propietario del negocio que la registró.
Si el client_id o la redirect_uri no son válidos, o falta el PKCE, Craqui no vuelve a tu web: el propietario
ve en la pantalla de conexión que la app no está bien configurada. Revisa la URL contra
Conectar un negocio.
/oauth/token y /oauth/revoke
Una respuesta
401 trae el header WWW-Authenticate: Basic.
La API con el token de una app
Además de los errores de siempre, el token de una app puede recibir estos:
Los
401 traen el header
WWW-Authenticate: Bearer error="invalid_token", resource_metadata="https://api.craqui.com/.well-known/oauth-protected-resource/v1".
Las pausas no desconectan
Dos situaciones dejan la conexión en pausa, sin cortarla:- El plan del negocio deja de incluir la API. La API responde
plan_required, pero el refresh token sigue renovándose: no lo descartes. Cuando el negocio vuelve a un plan con API, todo funciona sin conectar de nuevo. - Quien conectó tu app deja de ser propietario. La API responde
app_connection_suspended, y el refresh token también sigue renovándose. Si esa persona vuelve a ser propietaria, todo funciona sin conectar de nuevo. Si no, otro propietario del negocio conecta tu app desde tu web, y esa conexión reemplaza a la anterior.
Cuánto tarda un corte
Desconectar, suspender tu app o perder el rol de propietario se nota en la API en menos de un minuto: puede que algunos pedidos de los segundos siguientes todavía funcionen. La renovación de tokens, en cambio, se corta en el primer intento cuando la conexión se desconectó (invalid_grant) o tu app está suspendida
(invalid_client).
Límites
Una app tiene dos límites por minuto, y un pedido pasa solo si los dos tienen lugar:- Por conexión son los mismos números que una clave: un negocio no le da a tu app más que a cualquier otro sistema.
- El límite por app protege a todos los negocios de un error en tu código. Si tu app crece y lo necesitas más alto, escríbenos: lo subimos a 5.000 lecturas, 1.500 escrituras y 500 de plata por minuto.
- Un pedido que la conexión ya rechazó no cuenta para el total de la app: un negocio con mucho movimiento no le gasta el límite a los demás.
RateLimit-Policy y RateLimit de cada respuesta dicen el límite que está más cerca de cortar,
el de la conexión o el de la app. Cuando se acaba, la respuesta es 429 rate_limited
con Retry-After. Lee Límites.
/oauth/token y /oauth/revoke tienen su propio límite: 60 pedidos por minuto por app, sumando los dos y
todos los negocios. Renueva cada access token solo cuando está por vencer, no en cada pedido, y reparte las
renovaciones en el tiempo en vez de renovar todos los negocios a la misma hora.
