Обновите или продлите подписку на Google Workspace

На этой странице объясняется, как продлить подписку Google Workspace с помощью метода subscriptions.update() . Этот метод можно использовать для обновления срока действия подписки, включая продление на максимально возможный срок, а также для обновления списка типов событий, которые нужно получать о целевом ресурсе.

Скрипт приложений

  • Проект Apps Script:
    • Используйте свой проект Google Cloud вместо проекта по умолчанию, созданного автоматически Apps Script.
    • Для всех областей действия, добавленных для настройки экрана согласия OAuth, необходимо также добавить их в файл appsscript.json в проекте Apps Script. Например, если вы указали область действия chat.messages , добавьте следующее:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Включите расширенную службу Google Workspace Events .

Питон

  • Python 3.6 или выше
  • Инструмент управления пакетами pip
  • Последние клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в командной строке:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

Продлить подписку на Google Workspace

В этом разделе мы используем метод subscriptions.update() API событий Google Workspace для продления подписки до максимального срока действия. Чтобы указать максимальный срок действия, обновите поле ttl ресурса Subscription до 0 .

Максимальный срок действия зависит от того, какие данные о ресурсах включены в полезную нагрузку события. Подробнее о сроках действия см. в разделе Данные событий для событий Google Workspace .

Чтобы продлить подписку на Google Workspace:

Скрипт приложений

  1. В проекте 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);
    }
    

    Заменить следующее:

    • SUBSCRIPTION_ID : Идентификатор подписки. Чтобы получить идентификатор, воспользуйтесь любым из следующих способов:
      • Значение поля uid .
      • Идентификатор имени ресурса, представленный в поле name . Например, если имя ресурса — subscriptions/subscription-123 , используйте subscription-123 .
  2. Чтобы обновить подписку Google Workspace, запустите функцию updateSubscription в проекте Apps Script.

Питон

  1. В рабочем каталоге создайте файл с именем 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 : Идентификатор подписки. Чтобы получить идентификатор, воспользуйтесь любым из следующих способов:
      • Значение поля uid .
      • Идентификатор имени ресурса, представленный в поле name . Например, если имя ресурса — subscriptions/subscription-123 , используйте subscription-123 .
  2. Убедитесь, что вы сохранили учётные данные OAuth-клиента в рабочем каталоге и назвали файл credentials.json . В примере кода этот JSON-файл используется для аутентификации в Google Workspace и получения учётных данных пользователя. Инструкции см. в разделе Создание учётных данных OAuth-клиента .

  3. Чтобы обновить подписку Google Workspace, выполните в терминале следующее:

    python3 update_subscription.py
API событий Google Workspace возвращает длительную операцию , содержащую экземпляр ресурса Subscription .

Чтобы получить информацию об обновлённом ресурсе Subscription , используйте метод operations.get() и укажите ресурс Operation , возвращённый запросом subscriptions.update() . В противном случае, если вы укажете ресурс Operation из предыдущей версии подписки, ответ будет пустым.

Обновите или возобновите подписку как приложение Google Chat

Вы можете обновить или продлить подписку на события Chat как пользователь приложения Chat, а не как пользователь. Процесс аналогичен, за исключением:

  1. Вместо аутентификации пользователя выполните аутентификацию как приложение чата с однократным одобрением администратора .

  2. Укажите области авторизации, позволяющие приложению Chat подписываться на события Chat. Эти области авторизации всегда начинаются с chat.app и включают в себя следующее:

    • https://www.googleapis.com/auth/chat.app.memberships : Подпишитесь на события для участников чат-пространства.
    • https://www.googleapis.com/auth/chat.app.messages.readonly : Подпишитесь на события сообщений в чат-пространстве.
    • https://www.googleapis.com/auth/chat.app.spaces : Подпишитесь на события чат-пространства.

Создать ключ API

Для вызова метода API Developer Preview необходимо использовать закрытую версию документа API Discovery, доступную для разработчиков. Для аутентификации запроса необходимо передать ключ API.

Чтобы создать ключ API, откройте проект Google Cloud вашего приложения и выполните следующие действия:

  1. В консоли Google Cloud перейдите в > API и службы > Учетные данные .

    Перейти к учетным данным

  2. Нажмите Создать учетные данные > Ключ API .
  3. Отобразится ваш новый ключ API.
    • Нажмите «Копировать , чтобы скопировать ключ API для использования в коде вашего приложения. Ключ API также можно найти в разделе «Ключи API» учётных данных вашего проекта.
    • Чтобы предотвратить несанкционированное использование, мы рекомендуем ограничить, где и для каких API можно использовать ключ API. Подробнее см. в разделе «Добавление ограничений API» .

Напишите скрипт, который вызывает API событий Google Workspace

Следующий пример кода обновляет подписку Google Workspace приложения Chat:

Питон

  """Update 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,
      discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
  )

  BODY = {
      'ttl': {'seconds': 0},
  }
  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = (
      service.subscriptions()
      .patch(name=NAME, updateMask='ttl', body=BODY)
      .execute()
  )
  print(response)

Заменить следующее:

  • SCOPES : Укажите области авторизации, позволяющие приложению Chat подписываться на события Chat. Эти области авторизации всегда начинаются с chat.app и включают следующее:

    • https://www.googleapis.com/auth/chat.app.memberships : Подпишитесь на события для участников чат-пространства.
    • https://www.googleapis.com/auth/chat.app.messages.readonly : Подпишитесь на сообщения и реакции в чат-пространстве.
    • https://www.googleapis.com/auth/chat.app.spaces : Подпишитесь на события чат-пространства.
  • API_KEY : ключ API, созданный вами для построения конечной точки службы для API событий Google Workspace.

  • SUBSCRIPTION_ID : Идентификатор подписки. Чтобы получить идентификатор, воспользуйтесь любым из следующих способов:

    • Значение поля uid .
    • Идентификатор имени ресурса, представленный в поле name . Например, если имя ресурса — subscriptions/subscription-123 , используйте subscription-123 .