Limity wykorzystania

Interfejs Google Chat API jest usługą współdzieloną, dlatego stosujemy limity i ograniczenia, aby zapewnić sprawiedliwe korzystanie z niego przez wszystkich użytkowników i chronić ogólną wydajność Google Workspace.

Jeśli przekroczysz limit, otrzymasz odpowiedź z kodem stanu HTTP 429: Too many requests. Dodatkowe sprawdzenie limitu liczby żądań w backendzie Google Chat może też wygenerować tę samą odpowiedź z błędem. Jeśli wystąpi ten błąd, użyj algorytmu wykładniczego wycofywania i spróbuj ponownie później. Dopóki nie przekroczysz limitów na minutę wymienionych w tabelach poniżej, nie ma ograniczeń co do liczby żądań, które możesz wysłać dziennie.

Do metod interfejsu Chat API mogą mieć zastosowanie różne typy limitów: na projekt, na pokój i na użytkownika.

Limity na projekt

Limity na projekt ograniczają liczbę zapytań w projekcie w chmurze Google Cloud i dlatego dotyczą pojedynczej aplikacji Google Chat, która wywołuje określone metody interfejsu Chat API dla każdego limitu.

W tabeli poniżej znajdziesz szczegółowe informacje o limitach zapytań na projekt. Te limity znajdziesz też na stronie Limity.

Limit na projekt

Metody interfejsu Chat API

Limit (na 60 sekund)

Liczba zapisów wiadomości na minutę

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

Liczba odczytów wiadomości na minutę

spaces.messages.get

spaces.messages.list

3000

Liczba zapisów członkostwa na minutę

spaces.members.create

spaces.members.delete

300

Liczba odczytów członkostwa na minutę

spaces.members.get

spaces.members.list

3000

Liczba zapisów pokoju na minutę

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Liczba odczytów pokoju na minutę

spaces.get

spaces.list

spaces.findDirectMessage

3000

Liczba zapisów załączników na minutę

media.upload

600

Liczba odczytów załączników na minutę

spaces.messages.attachments.get

media.download

3000

Liczba zapisów reakcji na minutę

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Liczba odczytów reakcji na minutę

spaces.messages.reactions.list

3000

Liczba zapisów niestandardowych emoji na minutę

customEmojis.create

customEmojis.delete

600

Liczba odczytów niestandardowych emoji na minutę

customEmojis.get

customEmojis.list

3000

Liczba zapisów sekcji na minutę

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

600

Liczba odczytów sekcji na minutę

users.sections.list

users.sections.items.list

3000

Liczba odczytów dostępności na minutę

users.availability.get

3000

Liczba zapisów dostępności na minutę

users.availability.update

users.availability.markAsActive

users.availability.markAsAway

users.availability.markAsDoNotDisturb

3000

Limity na pokój

Limity na pokój ograniczają liczbę zapytań w danym pokoju i są współdzielone przez wszystkie aplikacje Google Chat działające w tym pokoju, które wywołują wymienione metody interfejsu Chat API dla każdego limitu.

W tabeli poniżej znajdziesz szczegółowe informacje o limitach zapytań na pokój:

Limit na pokój

Metody interfejsu Chat API

Limit (na sekundę)

Liczba odczytów na sekundę

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

15

Liczba zapisów na sekundę

media.upload

spaces.delete

spaces.patch

spaces.messages.create (w przypadku webhooków przychodzących obowiązują dodatkowe limity)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.delete

1

Liczba zapisów tworzenia reakcji na sekundę

spaces.messages.reactions.create

5

Liczba zapisów wiadomości na sekundę podczas importowania danych do Google Chat

spaces.messages.create

10

Limity na użytkownika

Limity na użytkownika ograniczają liczbę zapytań użytkownika Google Chat. Zapytania dotyczą wszystkich aplikacji Google Chat, które wywołują metodę interfejsu Chat API w imieniu użytkownika (przy użyciu uwierzytelnienia użytkownika).

W tabeli poniżej znajdziesz szczegółowe informacje o limitach zapytań na użytkownika:

Limit na użytkownika

Metody interfejsu Chat API

Limit (na sekundę)

Liczba zapisów niestandardowych emoji na sekundę

customEmojis.create

customEmojis.delete

1

Liczba odczytów niestandardowych emoji na sekundę

customEmojis.get

customEmojis.list

15

Liczba zapisów na sekundę

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

users.availability.update

users.availability.markAsActive

users.availability.markAsAway

users.availability.markAsDoNotDisturb

1

Liczba odczytów na sekundę

users.sections.list

users.sections.items.list

users.availability.get

15

Dodatkowe limity wykorzystania

Duży ruch w interfejsie API kierowany do tego samego pokoju może spowodować przekroczenie dodatkowych limitów wewnętrznych, które nie są widoczne na stronie Limity.

Rozwiązywanie błędów związanych z limitami czasowymi

W przypadku wszystkich błędów związanych z czasem (maksymalnie N żądań na X minut) zalecamy aby kod przechwytywał wyjątek i używał skróconego wzrastającego czasu do ponowienia, aby urządzenia nie generowały nadmiernego obciążenia.

Wzrastający czas do ponowienia to standardowa strategia obsługi błędów w przypadku aplikacji sieciowych. Algorytm wzrastającego czasu do ponowienia ponawia żądania, używając wykładniczo rosnących czasów oczekiwania między żądaniami, aż do maksymalnego czasu do ponowienia. Jeśli żądania nadal się nie powiodą, ważne jest, aby opóźnienia między żądaniami z czasem się zwiększały, aż żądanie się powiedzie.

Przykładowy algorytm

Algorytm wzrastającego czasu do ponowienia ponawia żądania wykładniczo, zwiększając czas oczekiwania między ponownymi próbami aż do maksymalnego czasu do ponowienia. Na przykład:

  1. Wyślij żądanie do interfejsu Google Chat API.
  2. Jeśli żądanie się nie powiedzie, odczekaj 1 + random_number_milliseconds i ponów próbę żądania.
  3. Jeśli żądanie się nie powiedzie, odczekaj 2 + random_number_milliseconds i ponów próbę żądania.
  4. Jeśli żądanie się nie powiedzie, odczekaj 4 + random_number_milliseconds i ponów próbę żądania.
  5. I tak dalej, aż do czasu maximum_backoff.
  6. Kontynuuj oczekiwanie i ponawianie prób aż do maksymalnej liczby ponownych prób, ale nie zwiększaj czasu oczekiwania między ponownymi próbami.

gdzie:

  • Czas oczekiwania to min(((2^n)+random_number_milliseconds), maximum_backoff), a n jest zwiększane o 1 w każdej iteracji (żądaniu).
  • random_number_milliseconds to losowa liczba milisekund mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w których wielu klientów jest zsynchronizowanych przez jakąś sytuację i wszyscy ponawiają próbę jednocześnie, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest ponownie obliczana po każdym żądaniu ponowienia próby.
  • maximum_backoff to zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.

Klient może kontynuować ponawianie prób po osiągnięciu czasu maximum_backoff. Ponowne próby po tym czasie nie muszą już zwiększać czasu do ponowienia. Jeśli na przykład klient używa czasu maximum_backoff wynoszącego 64 sekundy, po osiągnięciu tej wartości może ponawiać próbę co 64 sekundy. W pewnym momencie, należy uniemożliwić klientom ponawianie prób w nieskończoność.

Czas oczekiwania między ponownymi próbami i liczba ponownych prób zależą od przypadku użycia i warunków sieciowych.

Wysyłanie prośby o zwiększenie limitu na projekt

W zależności od wykorzystania zasobów w projekcie możesz poprosić o zmianę limitu. Wywołania interfejsu API przez konto usługi są traktowane jako korzystanie z jednego konta. Wysłanie wniosku o zmianę limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie próśb o zmianę limitu, które znacznie zwiększyłyby jego wartość, może potrwać dłużej.

Nie wszystkie projekty mają takie same limity. W miarę upływu czasu i zwiększania wykorzystania Google Cloud może być konieczne zwiększenie wartości limitu. Jeśli przewidujesz znaczny wzrost wykorzystania, możesz aktywnie poprosić o zmianę limitu na stronie Limity i ograniczenia systemu w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach:

Limity serwera Chat MCP

Serwer Chat MCP używa wskaźnika alokacji kosztów zapytań. W tabelach poniżej znajdziesz szczegółowe informacje o kosztach zapytań dla każdej metody serwera Chat MCP według sekcji:

Limity Chat MCP

Obowiązują 2 typy limitów:

  • Na minutę na projekt: jest to koszt zapytania do projektu Google Cloud na minutę.

  • Na minutę na użytkownika na projekt: jest to koszt zapytania do projektu w chmurze Google Cloud na minutę, z którego może korzystać dowolny użytkownik. Ten limit ma na celu zapewnienie sprawiedliwego rozkładu wykorzystania między użytkownikami.

W tabeli poniżej znajdziesz szczegółowe informacje o tych limitach:

Typ limitu wykorzystania Koszt zapytania
Na minutę na projekt 3000
Na minutę na użytkownika na projekt 300

Zestawy narzędzi Chat MCP

W tabeli poniżej znajdziesz szczegółowe informacje o kosztach zapytań dla każdego zestawu narzędzi chatmcp.googleapis.com:

Punkt końcowy

Narzędzie

Koszt zapytania

/mcp/v1

list_messages

1

search_conversations

10

search_messages

10

send_message

10

Więcej informacji znajdziesz w dokumentacji interfejsu Chat MCP API Reference.