На этой странице объясняется, как продлить подписку Google Workspace с помощью метода subscriptions.update()
. Этот метод можно использовать для обновления срока действия подписки, включая продление на максимально возможный срок, а также для обновления списка типов событий, которые нужно получать о целевом ресурсе.
Скрипт приложений
- Подписка на Google Workspace. Чтобы создать её, см. раздел Создание подписки .
Требуется аутентификация пользователя с одной или несколькими областями, поддерживающими все типы событий для подписки .
- Проект Apps Script:
- Используйте свой проект Google Cloud вместо проекта по умолчанию, созданного автоматически Apps Script.
- Для всех областей действия, добавленных для настройки экрана согласия OAuth, необходимо также добавить их в файл
appsscript.json
в проекте Apps Script. Например, если вы указали область действияchat.messages
, добавьте следующее: - Включите расширенную службу
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Питон
- Python 3.6 или выше
- Инструмент управления пакетами pip
- Последние клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в командной строке:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Подписка на Google Workspace. Чтобы создать её, см. раздел Создание подписки .
Требуется аутентификация пользователя с одной или несколькими областями, поддерживающими все типы событий для подписки .
Продлить подписку на Google Workspace
В этом разделе мы используем метод subscriptions.update()
API событий Google Workspace для продления подписки до максимального срока действия. Чтобы указать максимальный срок действия, обновите поле ttl
ресурса Subscription
до 0
.
Максимальный срок действия зависит от того, какие данные о ресурсах включены в полезную нагрузку события. Подробнее о сроках действия см. в разделе Данные событий для событий Google Workspace .
Чтобы продлить подписку на Google Workspace:
Скрипт приложений
В проекте Apps Script создайте новый файл скрипта с именем
updateSubscription
и добавьте следующий код:function updateSubscription() { // The name of the subscription to update. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.patch({ ttl: '0s', }, name); console.log(response); }
Заменить следующее:
Чтобы обновить подписку Google Workspace, запустите функцию
updateSubscription
в проекте Apps Script.
Питон
В рабочем каталоге создайте файл с именем
update_subscription.py
и добавьте следующий код:"""Update 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, ) BODY = { 'ttl': {'seconds': 0}, } NAME = 'subscriptions/SUBSCRIPTION_ID' response = ( service.subscriptions() .patch(name=NAME, updateMask='ttl', body=BODY) .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 update_subscription.py
Subscription
. Чтобы получить информацию об обновлённом ресурсе Subscription
, используйте метод operations.get()
и укажите ресурс Operation
, возвращённый запросом subscriptions.update()
. В противном случае, если вы укажете ресурс Operation
из предыдущей версии подписки, ответ будет пустым.