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

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

Apps Script

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

Python

  • 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:

Apps Script

  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.

Python

  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

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

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

  2. Укажите области авторизации, которые позволяют приложению «Чат» подписываться на события чата. Эти области авторизации всегда начинаются с 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 из предварительной версии для разработчиков необходимо использовать непубличную предварительную версию документа обнаружения API. Для аутентификации запроса необходимо передать ключ API.

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

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

    Перейдите в раздел «Учетные данные».

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

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

Приведенный ниже пример кода обновляет подписку Google Workspace в приложении чата:

Python

  """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.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 .