На этой странице объясняется, как повторно активировать приостановленную подписку Google Workspace, устранив ошибки и вызвав метод subscriptions.reactivate
.
Подписки Google Workspace приостанавливаются, когда ошибка не позволяет подписке получать события. Например, подписка приостанавливается, когда ее целевой ресурс или конечная точка уведомления не могут быть найдены. После устранения всех ошибок с подпиской вы можете повторно активировать подписку, чтобы снова начать получать события.
Узнать о приостановленной подписке можно следующими способами:
- Ваше приложение получает событие жизненного цикла о приостановке. Если ваша подписка приостановлена из-за ошибки с ее конечной точкой, вы можете не получить событие жизненного цикла.
- Используйте методы
subscriptions.get
илиsubscriptions.list
, чтобы узнать, установлено ли в полеstate
подписки значениеSUSPENDED
. - Вы уведомлены о сбое доставки в вашу конечную точку уведомления. Чтобы узнать о мониторинге сбоев доставки в темы Google Cloud Pub/Sub, см . Обработка сбоев сообщений .
Повторно активированные подписки сохраняют исходную дату окончания срока действия. Чтобы продлить срок действия подписки, см. Обновление или продление подписки Google Workspace .
Скрипт приложений
- Подписка на Google Workspace. Чтобы создать ее, см. раздел Создание подписки .
Требуется аутентификация пользователя с одной или несколькими областями, поддерживающими все типы событий для подписки .
- Проект скрипта приложений:
- Используйте свой проект Google Cloud вместо проекта по умолчанию, автоматически созданного Apps Script.
- Для любых областей, которые вы добавили для настройки экрана согласия OAuth, вы также должны добавить области в файл
appsscript.json
в вашем проекте Apps Script. Например: - Включите расширенную службу
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Питон
- Python 3.6 или выше
- Инструмент управления пакетами pip
- Последние клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Подписка на Google Workspace. Чтобы создать ее, см. раздел Создание подписки .
Требуется аутентификация пользователя с одной или несколькими областями, поддерживающими все типы событий для подписки .
Выявление и устранение ошибок
Чтобы определить ошибку для подписки, просмотрите поле suspensionReason
подписки. Вы можете найти это поле, когда получаете событие жизненного цикла о приостановке или используя метод subscriptions.get
для просмотра всех полей для подписки.
В следующей таблице показаны возможные ошибки для подписки и, когда это возможно, способы устранения ошибок. Если вы не можете устранить ошибку, вы можете удалить подписку или дождаться ее истечения. API событий Google Workspace автоматически удаляет истекшие подписки.
Ошибка | Описание | Способы решения |
---|---|---|
| Авторизующий пользователь отменил предоставление одной или нескольких областей OAuth, необходимых для подписки. | Получите другой токен доступа. Подробности см. в разделе Получение токена доступа с сервера авторизации Google . |
| Целевой ресурс для подписки удален. | Если ресурс восстановлен, вызовите метод reactivate . В противном случае никаких действий не требуется, так как вы не можете повторно активировать подписку без ее исходного целевого ресурса. |
| Авторизующий пользователь больше не имеет доступа к ресурсу для подписки. | Никаких действий не требуется. Вы не можете повторно активировать подписку, так как пользователь, который ее авторизовал, не может получить доступ к целевому ресурсу. |
| Приложение Google Workspace не имеет доступа к доставке событий в конечную точку уведомлений. | Предоставьте доступ к учетной записи службы для приложения Google Workspace, которое доставляет события. Учетные записи услуг:
Для тем Pub/Sub предоставьте учетной записи службы роль издателя Pub/Sub ( roles/pubsub.publisher) . |
| Конечная точка уведомления не существует или не может быть найдена. | Проверьте, что конечная точка все еще активна и работает. Для устранения неполадок в темах Pub/Sub см. документацию по устранению неполадок . |
| Конечная точка уведомлений не смогла получить события из-за недостаточной квоты или достижения ограничения скорости. | Запросить увеличение квоты. |
Повторно активировать подписку
После устранения ошибки, которая приостановила вашу подписку, вы можете использовать метод reactivate
, чтобы подписка снова получала события. Метод проверяет, что все ошибки устранены, и изменяет поле state
вашей подписки с SUSPENDED
на ACTIVE
.
Чтобы повторно активировать подписку Google Workspace:
Скрипт приложений
В проекте Apps Script создайте новый файл скрипта с именем
reactivateSubscription
и добавьте следующий код: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); }
Заменить следующее:
Чтобы повторно активировать подписку Google Workspace, запустите функцию
reactivateSubscription
в проекте Apps Script.
Питон
В рабочем каталоге создайте файл с именем
reactivate_subscription.py
и добавьте следующий код:"""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)
Заменить следующее:
-
SCOPES
: Одна или несколько областей действия OAuth , которые поддерживают каждый тип событий для подписки. Форматируется как массив строк. Чтобы перечислить несколько областей действия, разделите их запятыми. Например,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
. -
SUBSCRIPTION_ID
: Идентификатор подписки. Чтобы получить идентификатор, вы можете использовать любой из следующих способов:
-
В рабочем каталоге убедитесь, что вы сохранили учетные данные идентификатора клиента OAuth и назвали файл
credentials.json
. Пример кода использует этот файл JSON для аутентификации в Google Workspace и получения учетных данных пользователя. Инструкции см. в разделе Создание учетных данных идентификатора клиента OAuth .Чтобы повторно активировать подписку Google Workspace, выполните в терминале следующую команду:
python3 reactivate_subscription.py
Subscription
.Если запрос не выполнен, см. следующий раздел для устранения дополнительных ошибок.
Устранение множественных ошибок
Если вы устранили ошибку, приостановившую подписку, и метод reactivate
не работает, возможно, после приостановки подписки возникла другая ошибка.
Чтобы определить дополнительные ошибки, просмотрите вывод невыполненного запроса. Вывод содержит все ошибки, которые все еще присутствуют.
Если в вашей подписке обнаружено несколько ошибок, значение поля suspensionReason
всегда использует исходную ошибку, которая приостановила вашу подписку.