Z tej strony dowiesz się, jak ponownie aktywować zawieszoną subskrypcję Google Workspace. Aby to zrobić, musisz rozwiązać problemy lub naprawić błędy i użyć metody subscriptions.reactivate()
.
Subskrypcje Google Workspace są zawieszane, gdy błąd uniemożliwia subskrypcji otrzymywanie zdarzeń. Na przykład subskrypcja jest zawieszona, gdy nie można znaleźć zasobu docelowego lub punktu końcowego powiadomienia. Po rozwiązaniu problemów z subskrypcją możesz ją ponownie aktywować, aby zacząć ponownie otrzymywać zdarzenia.
Informacje o zawieszonej subskrypcji możesz uzyskać na te sposoby:
- Aplikacja otrzyma zdarzenie cyklu życia dotyczące zawieszenia. Jeśli subskrypcja została zawieszona z powodu błędu w jej punkcie końcowym, możesz nie otrzymać zdarzenia cyklu życia.
- Aby sprawdzić, czy pole
state
w subskrypcji ma wartośćSUSPENDED
, użyj metodysubscriptions.get()
lubsubscriptions.list()
. - Otrzymasz powiadomienie o nieudanej próbie dostarczenia powiadomienia do punktu końcowego. Więcej informacji o monitorowaniu błędów dostawy do tematów Google Cloud Pub/Sub znajdziesz w artykule Zarządzanie błędami wiadomości.
W przypadku reaktywowanych subskrypcji zachowana jest pierwotna data ważności. Aby przedłużyć czas ważności subskrypcji, zapoznaj się z artykułem Aktualizowanie lub odnawianie subskrypcji.
Google Apps Script
- Abonament Google Workspace. Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.
Wymaga uwierzytelniania użytkownika za pomocą co najmniej 1 zakresu, który obsługuje wszystkie typy zdarzeń w ramach subskrypcji.
- projekt Apps Script:
- Zamiast domyślnego projektu utworzonego automatycznie przez Apps Script użyj swojego projektu Google Cloud.
- W przypadku zakresów, które dodano do skonfigurowania ekranu zgody OAuth, musisz też dodać te zakresy do pliku
appsscript.json
w projekcie Apps Script. Na przykład: - Włącz
usługę zaawansowaną
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 lub nowszy
- Narzędzie do zarządzania pakietami pip
- najnowsze biblioteki klienta Google dla Pythona; Aby je zainstalować lub zaktualizować, uruchom w interfejsie wiersza poleceń to polecenie:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Abonament Google Workspace. Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.
Wymaga uwierzytelniania użytkownika za pomocą co najmniej 1 zakresu, który obsługuje wszystkie typy zdarzeń w ramach subskrypcji.
Wykrywanie i rozwiązywanie błędów
Aby zidentyfikować błąd subskrypcji, sprawdź pole suspensionReason
. To pole znajdziesz, gdy otrzymasz zdarzenie cyklu życia dotyczące zawieszenia, lub gdy za pomocą metody subscriptions.get()
przejrzysz wszystkie pola subskrypcji.
W tabeli poniżej znajdziesz możliwe błędy dotyczące subskrypcji oraz sposoby ich rozwiązywania (jeśli to możliwe). Jeśli nie możesz rozwiązać problemu, usuń subskrypcję lub poczekaj, aż wygaśnie. Interfejs Events API w Google Workspace automatycznie usuwa wygasłe subskrypcje.
Błąd | Opis | Sposoby rozwiązania problemu |
---|---|---|
|
Użytkownik autoryzujący cofnął uprawnienia co najmniej jednego zakresu OAuth wymaganego do 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 został przywrócony, wywołaj metodę reactivate() . W przeciwnym razie nie musisz nic robić, ponieważ nie możesz reaktywować subskrypcji bez pierwotnego zasobu docelowego. |
|
Użytkownik upoważniają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. W przypadku zdarzeń Google Chat konto usługi to chat-api-push@system.gserviceaccount.com . W przypadku wydarzeń w Google Meet konto usługi to meet-api-event-push@system.gserviceaccount.com .W przypadku tematów Pub/Sub przypisz do konta usługi rolę Publikujący w Pub/Sub ( roles/pubsub.publisher)
). |
|
Punkt końcowy powiadomienia 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 usługi 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 przekroczenia limitu liczby żądań. | Poproś o zwiększenie limitu. |
Wznawianie subskrypcji
Gdy rozwiążesz problem, który spowodował zawieszenie subskrypcji, możesz użyć metody reactivate()
, aby subskrypcja mogła ponownie otrzymywać zdarzenia. Ta metoda sprawdza, czy wszystkie błędy zostały naprawione, i zmienia pole state
w subskrypcji z wartości SUSPENDED
na ACTIVE
.
Aby ponownie aktywować subskrypcję Google Workspace:
Google Apps Script
W projekcie Apps Script utwórz nowy plik skryptu o nazwie
reactivateSubscription
i 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ć subskrypcję Google Workspace, uruchom funkcję
reactivateSubscription
w projekcie Apps Script.
Python
W katalogu roboczym utwórz plik o nazwie
reactivate_subscription.py
i 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('client_secrets.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 obsługujący każdy typ zdarzenia w subskrypcji. Sformatowany jako tablica ciągów znaków. Aby podać wiele 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ć jednej z tych opcji:
Sprawdź, czy w katalogu roboczym masz zapisane dane uwierzytelniające klienta OAuth i czy plik ma nazwę
client_secrets.json
. Plik ten służy do uwierzytelniania się w Google Workspace i uzyskiwania danych logowania użytkownika. Instrukcje znajdziesz w artykule Tworzenie danych logowania klienta OAuth.Aby ponownie aktywować subskrypcję Google Workspace, uruchom w terminalu to polecenie:
python3 reactivate_subscription.py
Subscription
.
Jeśli żądanie się nie powiedzie, przeczytaj następną sekcję, aby rozwiązać problem.
Rozwiązywanie problemów z wieloma błędami
Jeśli błąd, który spowodował zawieszenie subskrypcji, został już rozwiązany, a metoda reactivate()
nie działa, po zawieszeniu subskrypcji może wystąpić inny błąd.
Aby znaleźć dodatkowe błędy, sprawdź dane wyjściowe nieudanego żądania. Wyjście zawiera wszystkie błędy, które nadal występują.
Jeśli subskrypcja ma wiele błędów, wartość w polu suspensionReason
zawsze odpowiada pierwotnemu błędowi, który spowodował zawieszenie subskrypcji.