Z tej strony dowiesz się, jak ponownie aktywować zawieszoną subskrypcję Google Workspace, rozwiązując problemy i wywołując metodę subscriptions.reactivate
.
Subskrypcje Google Workspace są zawieszane, gdy błąd uniemożliwia im otrzymywanie zdarzeń. Na przykład subskrypcja jest zawieszana, gdy nie można znaleźć jej zasobu docelowego lub punktu końcowego powiadomień. Po rozwiązaniu problemów z subskrypcją możesz ją ponownie aktywować, aby znowu otrzymywać zdarzenia.
Informacje o zawieszonej subskrypcji możesz uzyskać w następujący sposób:
- Aplikacja otrzyma zdarzenie cyklu życia dotyczące zawieszenia. Jeśli subskrypcja zostanie zawieszona z powodu błędu w jej punkcie końcowym, możesz nie otrzymać zdarzenia cyklu życia.
- Użyj metod
subscriptions.get
lubsubscriptions.list
, aby sprawdzić, czy polestate
subskrypcji ma wartośćSUSPENDED
. - Otrzymasz powiadomienie o niepowodzeniu dostawy do punktu końcowego powiadomień. Więcej informacji o monitorowaniu błędów dostarczania do tematów Google Cloud Pub/Sub znajdziesz w artykule Obsługa błędów wiadomości.
Reaktywowane subskrypcje zachowują pierwotną datę wygaśnięcia. Aby przedłużyć czas wygaśnięcia subskrypcji, przeczytaj artykuł Aktualizowanie lub odnawianie subskrypcji Google Workspace.
Google Apps Script
- subskrypcję Google Workspace; Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.
Wymaga uwierzytelnienia użytkownika za pomocą co najmniej 1 zakresu, który obsługuje wszystkie typy zdarzeń w przypadku subskrypcji.
- Projekt Apps Script:
- Użyj projektu Google Cloud zamiast domyślnego projektu utworzonego automatycznie przez Apps Script.
- Wszystkie zakresy dodane w celu skonfigurowania ekranu akceptacji OAuth musisz też dodać do pliku
appsscript.json
w 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" ]
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
- subskrypcję Google Workspace; Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.
Wymaga uwierzytelnienia użytkownika za pomocą co najmniej 1 zakresu, który obsługuje wszystkie typy zdarzeń w przypadku subskrypcji.
Identyfikowanie i rozwiązywanie błędów
Aby zidentyfikować błąd subskrypcji, sprawdź pole suspensionReason
. To pole znajdziesz, gdy otrzymasz wydarzenie związane z cyklem życia
subskrypcji dotyczące
zawieszenia lub gdy użyjesz metody subscriptions.get
, aby sprawdzić wszystkie pola subskrypcji.
W tabeli poniżej znajdziesz możliwe błędy dotyczące subskrypcji oraz, w miarę możliwości, sposoby 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 problemu |
---|---|---|
|
Użytkownik, który udzielił autoryzacji, cofnął przyznanie co najmniej jednego zakresu OAuth wymaganego w przypadku subskrypcji. | Uzyskaj kolejny token dostępu. Więcej informacji znajdziesz w artykule Uzyskiwanie tokena dostępu z serwera autoryzacji Google. |
|
Docelowy zasób subskrypcji został usunięty. | Jeśli zasób zostanie przywrócony, wywołaj metodę reactivate . W innym przypadku nie musisz nic robić, ponieważ nie możesz ponownie aktywować subskrypcji bez oryginalnego zasobu docelowego. |
|
Użytkownik, który udzielił autoryzacji, nie ma już dostępu do zasobu w ramach 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. Konta usługi:
W przypadku tematów Pub/Sub przypisz do konta 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. Informacje o rozwiązywaniu problemów z tematami Pub/Sub znajdziesz w dokumentacji dotyczącej 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. |
Ponowne aktywowanie subskrypcji
Po rozwiązaniu problemu, który spowodował zawieszenie subskrypcji, możesz użyć reactivate
, aby ponownie umożliwić subskrypcji odbieranie zdarzeń. Ta metoda sprawdza, czy wszystkie błędy zostały rozwiązane, i zmienia wartość pola state
w subskrypcji z 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('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 przypadku subskrypcji. Sformatowane jako tablica ciągów tekstowych. 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ć dowolnej z tych metod:
W katalogu roboczym sprawdź, czy masz zapisane dane uwierzytelniające identyfikatora klienta OAuth i czy 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 uwierzytelniających identyfikatora klienta OAuth.Aby ponownie aktywować subskrypcję Google Workspace, uruchom w terminalu to polecenie:
python3 reactivate_subscription.py
Subscription
.
Jeśli żądanie się nie powiedzie, zapoznaj się z sekcją poniżej, aby rozwiązać dodatkowe błędy.
Rozwiązywanie problemów z wieloma błędami
Jeśli błąd, który spowodował zawieszenie subskrypcji, został rozwiązany, a metoda reactivate
nie działa, po zawieszeniu subskrypcji mógł wystąpić inny błąd.
Aby wykryć dodatkowe błędy, sprawdź dane wyjściowe nieudanego żądania. Dane wyjściowe zawierają wszystkie błędy, które nadal występują.
Jeśli subskrypcja zawiera kilka błędów, wartość pola suspensionReason
zawsze odnosi się do pierwotnego błędu, który spowodował zawieszenie subskrypcji.