Límites de uso

Dado que la API de Google Chat es un servicio compartido, aplicamos cuotas y limitaciones a asegúrate de que lo usen todos los usuarios y para proteger y el rendimiento de Google Workspace.

Si superas una cuota, recibirás una solicitud HTTP 429: Too many requests la respuesta de código de estado. Verificaciones de límites de frecuencia adicionales en Chat backend también podría generar la misma respuesta de error. Si se produce este error, deberían usar un algoritmo de retirada exponencial y vuelve a intentarlo más tarde. Siempre y cuando no superes las cuotas por minuto que se indican en en las siguientes tablas, no hay límite para la cantidad de solicitudes que puedes realizar por día.

Se aplican dos tipos de cuota a los métodos de la API de Chat: por espacio y por proyecto. y cuotas.

Cuotas por espacio

Las cuotas por espacio limitan la frecuencia de consultas en un espacio determinado y se comparten todas las apps de Chat que actúen en ese espacio que llamen al Métodos de la API de Chat para cada cuota.

En la siguiente tabla, se detallan los límites de consultas por espacio:

Cuota por espacio

Métodos de la API de Chat

Límite (cada 60 segundos, compartido
entre todas las apps de Chat del espacio)

Operaciones de lectura por minuto

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

900

Operaciones de escritura por minuto

media.upload

spaces.delete

spaces.patch

spaces.messages.create (también se aplica a webhooks entrantes)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.create

spaces.messages.reactions.delete

60

Cuotas por proyecto

Las cuotas por proyecto limitan la frecuencia de consultas para un proyecto de Google Cloud. Así, se aplican a una sola app de Chat que llama al Métodos de la API de Chat para cada cuota.

En la siguiente tabla, se detallan los límites de consultas por proyecto. También puedes encontrar estos límites en la página Cuotas.

Cuota por proyecto

Métodos de la API de Chat

Límite (cada 60 segundos)

Escrituras de mensajes por minuto

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

Operaciones de lectura de mensajes por minuto

spaces.messages.get

spaces.messages.list

3000

Operaciones de escritura de membresía por minuto

spaces.members.create

spaces.members.delete

300

Operaciones de lectura de membresía por minuto

spaces.members.get

spaces.members.list

3000

Escrituras en el espacio por minuto

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Operaciones de lectura de espacios por minuto

spaces.get

spaces.list

spaces.findDirectMessage

3000

Operaciones de escritura de adjuntos por minuto

media.upload

600

Operaciones de lectura de archivos adjuntos por minuto

spaces.messages.attachments.get

media.download

3000

Operaciones de escritura de reacciones por minuto

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Lecturas de reacción por minuto

spaces.messages.reactions.list

3000

Límites de uso adicionales

Hay límites de cuota adicionales para crear espacios de tipo GROUP_CHAT o SPACE (mediante el método spaces.create o spaces.setup). Crear menos de 35 espacios por minuto y 210 espacios por hora de estos tipos. Los espacios de tipo DIRECT_MESSAGE no están sujetos a estas límites de cuota adicionales.

Pueden activarse las consultas grandes por segundo (QPS) de cualquier API que se oriente al mismo espacio. límites internos adicionales que no son visibles en el Cuotas.

Resuelve errores de cuotas basadas en el tiempo

Para todos los errores basados en el tiempo (un máximo de N solicitudes por X minutos), recomendamos tu código detecta la excepción y usa una retirada exponencial truncada para garantizar que tu los dispositivos no generan una carga excesiva.

La retirada exponencial es una estrategia estándar de manejo de errores para aplicaciones de red. Los El algoritmo de retirada exponencial vuelve a intentar las solicitudes con tiempos de espera que aumentan exponencialmente entre solicitudes, hasta un tiempo de retirada máximo. Si las solicitudes aún no tienen éxito, es importante que las demoras entre las solicitudes aumenten con el tiempo hasta que la solicitud sea exitosa.

Algoritmo de ejemplo

Un algoritmo de retirada exponencial vuelve a intentar las solicitudes de forma exponencial, lo que aumenta el tiempo de espera. entre reintentos y un tiempo de retirada máximo. Por ejemplo:

  1. Hacer una solicitud a la API de Google Chat
  2. Si la solicitud falla, espera 1 + random_number_milliseconds y vuelve a intentarlo. la solicitud.
  3. Si la solicitud falla, espera 2 + random_number_milliseconds y vuelve a intentarlo. la solicitud.
  4. Si la solicitud falla, espera 4 + random_number_milliseconds y vuelve a intentarlo. la solicitud.
  5. Y así sucesivamente, hasta un tiempo de maximum_backoff.
  6. Sigue con la espera y los reintentos hasta una cantidad máxima de reintentos, pero no aumentes el tiempo de espera. y el período entre reintentos.

Donde:

  • El tiempo de espera es de min(((2^n)+random_number_milliseconds), maximum_backoff), con n incrementado en 1 para cada iteración (solicitud).
  • random_number_milliseconds es una cantidad aleatoria de milisegundos menor que o igual a 1,000. Esto ayuda a evitar casos en los que muchos clientes estén sincronizados alguna situación y todos reintentarán a la vez, enviando solicitudes sincronizadas olas. El valor de random_number_milliseconds se vuelve a calcular después de cada de respuesta ante la solicitud de reintento.
  • maximum_backoff suele ser de 32 o 64 segundos. El valor adecuado depende del caso de uso.

El cliente puede seguir reintentando después de que haya alcanzado el tiempo maximum_backoff. Después de este punto, los reintentos no necesitan continuar con el aumento del tiempo de retirada. Para Por ejemplo, si un cliente usa un tiempo maximum_backoff de 64 segundos, entonces, después de este valor, el cliente puede reintentarlo cada 64 segundos. En algún momento, los clientes deberían evitar que vuelvan a intentarlo de forma indefinida.

El tiempo de espera entre los reintentos y la cantidad de reintentos depende de tu caso de uso. y las condiciones de red.

Solicita un aumento de la cuota por proyecto

Según el uso que hagas de los recursos en tu proyecto, es posible que quieras solicitar una cuota el aumento de la demanda. Se considera que las llamadas a la API realizadas por una cuenta de servicio usan un cuenta. Solicitar una cuota mayor no garantiza la aprobación. Grande los aumentos de cuota pueden tardar más en aprobarse.

No todos los proyectos tienen las mismas cuotas. A medida que usas cada vez más Google Cloud las cuotas podrían aumentar. Si esperas que se produzca una de aumento en el uso, puedes solicitar ajustes de cuota en la página Cuotas en la consola de Google Cloud.

Para obtener más información, consulta los siguientes recursos: