Z tej strony dowiesz się, jak ponownie aktywować zawieszony abonament Google Workspace
, rozwiązując problemy i wywołując metodę
subscriptions.reactivate.
Abonamenty Google Workspace są zawieszane, gdy błąd uniemożliwia subskrypcji otrzymywanie zdarzeń. Subskrypcja jest na przykład zawieszana, gdy nie można znaleźć jej zasobu docelowego lub punktu końcowego powiadomień. Po rozwiązaniu wszystkich problemów z subskrypcją możesz ją ponownie aktywować, aby znów otrzymywać zdarzenia.
Informacje o zawieszonej subskrypcji możesz uzyskać na te sposoby:
- Twoja aplikacja otrzymuje zdarzenie cyklu życia dotyczące zawieszenia. Jeśli subskrypcja zostanie zawieszona z powodu błędu w punkcie końcowym, możesz nie otrzymać zdarzenia cyklu życia.
- Użyj metod
subscriptions.getlubsubscriptions.list, aby sprawdzić, czy polestatesubskrypcji ma wartośćSUSPENDED. - Otrzymasz powiadomienie o nieudanym dostarczeniu do punktu końcowego powiadomień. Więcej informacji o monitorowaniu nieudanych dostaw do tematów Google Cloud Pub/Sub znajdziesz w artykule Obsługa błędów wiadomości.
Ponownie aktywowane subskrypcje zachowują pierwotną datę wygaśnięcia. Aby przedłużyć czas wygaśnięcia abonamentu, przeczytaj artykuł Aktualizowanie lub odnawianie abonamentu Google Workspace.
Apps Script
- Abonament Google Workspace. Aby ją utworzyć, przeczytaj artykuł Tworzenie subskrypcji.
- Projekt Apps Script:
- Zamiast domyślnego projektu utworzonego automatycznie przez Apps Script użyj projektu w chmurze Google Cloud.
- W przypadku wszystkich zakresów dodanych do skonfigurowania ekranu zgody OAuth musisz też dodać
zakresy do pliku
appsscript.jsonw projekcie Apps Script. Jeśli na przykład określisz zakreschat.messages, dodaj te informacje: - Włącz
usługę zaawansowaną
Google Workspace Events.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Wymaga uwierzytelnienia i odpowiedniego zakresu autoryzacji dla każdego typu zdarzenia w subskrypcji:
- W przypadku uwierzytelniania użytkownika wymaga co najmniej 1 zakresu, który obsługuje co najmniej 1 typ zdarzenia w subskrypcji. Aby zidentyfikować zakres, przeczytaj artykuł Zakresy według typu zdarzenia.
- Aby subskrybować zdarzenie w Google Chat jako aplikacja do obsługi czatu, musisz uwierzytelnić aplikację i uzyskać jednorazową zgodę administratora.
Python
- Python 3.6 lub nowszy
- Narzędzie do zarządzania pakietami pip
- Najnowsze biblioteki klienta Google dla Pythona. Aby je zainstalować lub zaktualizować, w interfejsie wiersza poleceń uruchom to polecenie:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Abonament Google Workspace. Aby ją utworzyć, przeczytaj artykuł Tworzenie subskrypcji.
Wymaga uwierzytelnienia i odpowiedniego zakresu autoryzacji dla każdego typu zdarzenia w subskrypcji:
- W przypadku uwierzytelniania użytkownika wymaga co najmniej 1 zakresu, który obsługuje co najmniej 1 typ zdarzenia w subskrypcji. Aby zidentyfikować zakres, przeczytaj artykuł Zakresy według typu zdarzenia.
- Aby subskrybować zdarzenie w Google Chat jako aplikacja do obsługi czatu, musisz uwierzytelnić aplikację i uzyskać jednorazową zgodę administratora.
Identyfikowanie i rozwiązywanie błędów
Aby zidentyfikować błąd subskrypcji, sprawdź pole suspensionReason subskrypcji. To pole znajdziesz, gdy otrzymasz zdarzenie cyklu życia
dotyczące
zawieszenia lub gdy użyjesz
metody subscriptions.get, aby sprawdzić wszystkie pola subskrypcji.
W tabeli poniżej znajdziesz informacje o możliwych błędach subskrypcji oraz, jeśli to możliwe, o sposobach ich rozwiązania. Jeśli nie możesz rozwiązać problemu, możesz usunąć subskrypcję lub poczekać aż wygaśnie. Interfejs Google Workspace Events API automatycznie usuwa wygasłe subskrypcje.
| Błąd | Opis | Sposoby rozwiązania |
|---|---|---|
|
Użytkownik autoryzujący cofnął przyznanie co najmniej 1 zakresu OAuth, który jest wymagany w przypadku subskrypcji. | Uzyskaj kolejny token dostępu. Szczegółowe informacje znajdziesz w artykule Uzyskiwanie tokena dostępu z serwera autoryzacji Google. |
|
Zasób docelowy subskrypcji został usunięty. | Jeśli zasób zostanie przywrócony, wywołaj metodę reactivate. W przeciwnym razie nie musisz nic robić, ponieważ nie możesz ponownie aktywować subskrypcji bez jej pierwotnego zasobu docelowego. |
|
Użytkownik autoryzujący nie ma już dostępu do zasobu subskrypcji. | Nie musisz nic robić. Nie możesz ponownie aktywować subskrypcji, ponieważ użytkownik, który ją autoryzował, nie ma dostępu do zasobu docelowego. |
|
Aplikacja Google Workspace nie ma dostępu do dostarczania zdarzeń do punktu końcowego powiadomień. | Przyznaj dostęp do konta usługi aplikacji Google Workspace, która dostarcza zdarzenia. Service accounts:
W przypadku tematów Pub/Sub przyznaj kontu usługi rolę publikującego w Pub/Sub ( roles/pubsub.publisher)
. |
|
Punkt końcowy powiadomień nie istnieje lub nie można go znaleźć. | Sprawdź, czy punkt końcowy jest nadal aktywny i działa. Aby rozwiązać problemy z tematami Pub/Sub, zapoznaj się z dokumentacją dotyczącą rozwiązywania problemów. |
|
Punkt końcowy powiadomień nie otrzymał zdarzeń z powodu niewystarczającego limitu lub osiągnięcia limitu liczby żądań. | Poproś o zwiększenie limitu. |
|
Administrator domeny cofnął przyznanie co najmniej 1 zakresu OAuth aplikacji do obsługi czatu. | Uzyskaj zgodę administratora. |
|
Aplikacja do obsługi czatu, która autoryzowała utworzenie subskrypcji, nie ma już dostępu do zasobu docelowego subskrypcji. | Odzyskaj dostęp do zasobu docelowego. Jeśli na przykład zasobem docelowym jest pokój w Google Chat, aplikacja do obsługi czatu może wymagać członkostwa w tym pokoju. |
Ponowne aktywowanie subskrypcji
Po rozwiązaniu problemu, który spowodował zawieszenie subskrypcji, użyj metody reactivate, aby subskrypcja znów mogła otrzymywać zdarzenia. Metoda sprawdza, czy wszystkie błędy zostały rozwiązane, i zmienia pole state subskrypcji z SUSPENDED na ACTIVE.
Aby ponownie aktywować abonament Google Workspace:
Apps Script
W projekcie Apps Script utwórz nowy plik skryptu o nazwie
reactivateSubscriptioni dodaj ten kod:function reactivateSubscription() { // The name of the subscription to reactivate. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.reactivate({}, name); console.log(response); }Zastąp następujące elementy:
Aby ponownie aktywować abonament Google Workspace, w projekcie Apps Script uruchom funkcję
reactivateSubscription.
Python
W katalogu roboczym utwórz plik o nazwie
reactivate_subscription.pyi dodaj ten kod:"""Reactivate subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) NAME = 'subscriptions/SUBSCRIPTION_ID' response = service.subscriptions().reactivate(name=NAME).execute() print(response)Zastąp następujące elementy:
SCOPES: co najmniej 1 zakres OAuth, który obsługuje każdy typ zdarzenia w subskrypcji. Sformatowany jako tablica ciągów znaków. Aby podać kilka zakresów, rozdziel je przecinkami. Na przykład:'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.SUBSCRIPTION_ID: identyfikator subskrypcji. Aby uzyskać identyfikator, możesz użyć dowolnego z tych elementów:
W katalogu roboczym upewnij się, że masz zapisane dane logowania identyfikatora klienta OAuth i że plik ma nazwę
credentials.json. Przykładowy kod używa tego pliku JSON do uwierzytelniania w Google Workspace i uzyskiwania danych logowania użytkownika. Instrukcje znajdziesz w artykule Tworzenie danych logowania identyfikatora klienta OAuth.Aby ponownie aktywować abonament Google Workspace, uruchom w terminalu następujące polecenie:
python3 reactivate_subscription.py
Subscription.
Jeśli żądanie się nie powiedzie, zapoznaj się z sekcją poniżej, aby rozwiązać dodatkowe problemy.
Ponowne aktywowanie subskrypcji jako aplikacji do obsługi czatu
Subskrypcję zdarzeń w Google Chat możesz ponownie aktywować jako aplikacja do obsługi czatu, a nie jako użytkownik. Proces jest podobny, z tym że:
Zamiast uwierzytelniania użytkownika, uwierzytelnij się jako aplikacja do obsługi czatu, uzyskując jednorazową zgodę administratora.
Określ zakresy autoryzacji, które umożliwiają aplikacji do obsługi czatu subskrybowanie zdarzeń w Google Chat. Te zakresy autoryzacji zawsze zaczynają się od
chat.appi obejmują te zakresy:https://www.googleapis.com/auth/chat.app.memberships: subskrybuj zdarzenia dotyczące członków pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.memberships.readonly: subskrybuj zdarzenia dotyczące członków pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.messages.readonly: subskrybuj zdarzenia dotyczące wiadomości i reakcji w pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.spaces: subskrybuj zdarzenia dotyczące pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.spaces.readonly: subskrybuj zdarzenia dotyczące pokoju w Google Chat.
Napisz skrypt, który wywołuje interfejs Google Workspace Events API
Ten przykładowy kod ponownie aktywuje abonament Google Workspace aplikacji do Google Chat:
Python
"""Reactivate subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = [SCOPES]
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
)
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = service.subscriptions().reactivate(name=NAME).execute()
print(response)
Zastąp następujące elementy:
SCOPES: określ zakresy autoryzacji, które umożliwiają aplikacji do obsługi czatu subskrybowanie zdarzeń w Google Chat. Te zakresy autoryzacji zawsze zaczynają się odchat.appi obejmują te zakresy:https://www.googleapis.com/auth/chat.app.memberships: subskrybuj zdarzenia dotyczące członków pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.memberships.readonly: subskrybuj zdarzenia dotyczące członków pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.messages.readonly: subskrybuj zdarzenia dotyczące wiadomości i reakcji w pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.spaces: subskrybuj zdarzenia dotyczące pokoju w Google Chat.https://www.googleapis.com/auth/chat.app.spaces.readonly: subskrybuj zdarzenia dotyczące pokoju w Google Chat.
SUBSCRIPTION_ID: identyfikator subskrypcji. Aby uzyskać identyfikator, możesz użyć dowolnego z tych elementów:
Rozwiązywanie wielu problemów
Jeśli problem, który spowodował zawieszenie subskrypcji, został rozwiązany, a metoda reactivate się nie powiodła, po zawieszeniu subskrypcji mógł wystąpić inny błąd.
Aby zidentyfikować dodatkowe błędy, sprawdź dane wyjściowe nieudanego żądania. Dane wyjściowe zawierają wszystkie błędy, które nadal występują.
Gdy subskrypcja ma wiele błędów, wartość pola suspensionReason zawsze używa pierwotnego błędu, który spowodował zawieszenie subskrypcji.