В этом руководстве показано, как использовать REST API Google Meet вместе с Google Workspace Events API и Google Cloud Pub/Sub для отслеживания событий в пространстве встреч Meet и реагирования на них. Пример приложения записывает время начала и окончания конференций, время присоединения и выхода участников, а также время доступности созданных артефактов встречи.
Вместо подписки на конкретное пространство для совещаний вы можете подписаться на пользователя Meet, чтобы получать события для любого пространства для совещаний, которым этот пользователь владеет или которое он организует. Подробности см. в разделе «Подписка на события Google Meet» в документации по API событий Google Workspace.
Предварительные требования
Если для вашей организации необходимо включить какие-либо из этих предварительных условий, попросите администратора Google Workspace сделать это:
- Учетная запись Google Workspace с доступом к Google Meet .
- Доступ к созданию проекта в Google Cloud .
- Установлен Python 3 .
- Установлен интерфейс командной строки gcloud .
Подготовьте окружающую среду
В этом разделе показано, как создать и настроить локальную среду и проект Google Cloud для данного руководства.
Создайте рабочую директорию и виртуальное окружение Python.
Для создания и активации новой виртуальной среды выполните следующие команды в терминале.
Linux/macOS
mkdir meet-tutorialcd meet-tutorialpython3 -mvenv envsource env/bin/activate
Windows (командная строка)
mkdir meet-tutorialcd meet-tutorialpython3 -mvenv envenv/bin/activate.bat
Windows (PowerShell)
mkdir meet-tutorialcd meet-tutorialpython3 -mvenv envenv/bin/activate.ps1
Создайте проект в Google Cloud.
Консоль Google API
- В консоли Google API перейдите в > IAM и администрирование > Создать проект .
- В поле «Название проекта» введите описательное название для вашего проекта.
Необязательно: чтобы изменить идентификатор проекта , нажмите «Редактировать» . Идентификатор проекта нельзя изменить после его создания, поэтому выберите идентификатор, который будет соответствовать вашим потребностям на протяжении всего срока действия проекта.
- В поле «Местоположение» нажмите «Обзор» , чтобы отобразить возможные места для вашего проекта. Затем нажмите «Выбрать» .
- Нажмите «Создать» . Консоль Google API перенаправит вас на страницу панели управления, и ваш проект будет создан в течение нескольких минут.
gcloud CLI
В одной из следующих сред разработки получите доступ к интерфейсу командной строки Google Cloud ( gcloud ):
- Cloud Shell : Чтобы использовать онлайн-терминал с уже настроенным интерфейсом командной строки gcloud, активируйте Cloud Shell.
Активировать Cloud Shell - Локальная оболочка : Для использования локальной среды разработки установите и инициализируйте интерфейс командной строки gcloud.
Для создания облачного проекта используйте команду `gcloud projects create: Замените PROJECT_ID на идентификатор проекта, который вы хотите создать.gcloud projects create PROJECT_ID
Включить выставление счетов для проекта Google Cloud
Консоль Google API
- В консоли Google API перейдите в «Биллинг» . Нажмите меню > Биллинг > Мои проекты .
- В разделе «Выберите организацию» выберите организацию, связанную с вашим проектом Google Cloud.
- В строке проекта откройте меню «Действия» ( ), нажмите «Изменить выставление счетов» и выберите учетную запись Cloud Billing.
- Click Set account .
gcloud CLI
- Чтобы отобразить список доступных платежных аккаунтов, выполните следующую команду:
gcloud billing accounts list - Свяжите платежный аккаунт с проектом Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_IDЗамените следующее:
-
PROJECT_ID— это идентификатор проекта в облаке, для которого вы хотите включить выставление счетов. -
BILLING_ACCOUNT_ID— это идентификатор платежного аккаунта , который будет связан с проектом Google Cloud.
-
Set up authentication and authorization
Аутентификация и авторизация позволяют приложению получать доступ к ресурсам REST API Meet. Для вызова REST API Meet требуется авторизация пользователя. В этом разделе показано, как настроить учетные данные пользователя и запросить авторизацию.
Настройте экран согласия OAuth и выберите области действия.
The following steps suggest placeholder information to configure the OAuth consent screen for your app. Before publishing the app externally, update this information.
- В консоли Google API перейдите в > Платформа аутентификации Google > Брендинг .
- Если вы уже настроили платформу Google Auth, вы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение о том, что платформа Google Auth еще не настроена , нажмите «Начать» :
- В разделе «Информация о приложении» , в поле «Название приложения» введите
Meet REST API Tutorial. - В разделе «Электронная почта службы поддержки пользователей» выберите адрес электронной почты, по которому пользователи смогут связаться с вами, если у них возникнут вопросы относительно их согласия.
- Нажмите «Далее» .
- В разделе «Аудитория» выберите «Внутренняя» .
- Нажмите «Далее» .
- В поле «Контактная информация» укажите адрес электронной почты , на который вы сможете получать уведомления об изменениях в вашем проекте.
- Нажмите «Далее» .
- В разделе «Завершить» ознакомьтесь с Политикой использования пользовательских данных сервисов Google API и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных сервисов Google API» .
- Нажмите «Продолжить» .
- Нажмите «Создать» .
- Если в качестве типа пользователя выбран «Внешний» , добавьте тестовых пользователей:
- Нажмите «Аудитория» .
- В разделе «Проверка пользователей» нажмите «Добавить пользователей» .
- Введите свой адрес электронной почты и имена других авторизованных пользователей, затем нажмите «Сохранить» .
- Нажмите «Доступ к данным» > «Добавить или удалить области действия ». Откроется панель со списком областей действия для каждого API, который вы включили в своем проекте Google Cloud.
- В разделе «Добавить области действия вручную» вставьте следующие области действия:
-
https://www.googleapis.com/auth/meetings.space.created
-
- Нажмите «Добавить в таблицу» .
- Нажмите «Обновить» .
- После выбора областей действия, необходимых для вашего приложения, нажмите «Сохранить» .
Для получения дополнительной информации о настройке согласия OAuth см. раздел «Начало работы с платформой Google Auth» .
Создайте идентификатор клиента
Идентификатор клиента используется в качестве учетных данных для вашего приложения в процессе аутентификации OAuth 2.0. Поскольку приложение работает локально, создайте идентификатор клиента для настольного компьютера.
- В консоли Google API перейдите в > Платформа аутентификации Google > Клиенты .
- Нажмите «Создать клиента» .
- Выберите «Тип приложения» > «Настольное приложение» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google API.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Установите библиотеки аутентификации Google.
Установите библиотеки аутентификации Google:
pip install google-auth google-auth-oauthlibExecute authorization
Для работы REST API Meet требуются учетные данные пользователя в виде токена доступа OAuth 2.0. В этом разделе вы реализуете поток OAuth 2.0 для запроса токена доступа и токена обновления для пользователя.
В рабочей директории создайте файл
main.pyи добавьте в него следующее содержимое:import os import json from google.auth.transport import requests from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow def authorize() -> Credentials: """Ensure valid credentials for calling the Meet REST API.""" CLIENT_SECRET_FILE = "./client_secret.json" credentials = None if os.path.exists('token.json'): credentials = Credentials.from_authorized_user_file('token.json') if credentials is None: flow = InstalledAppFlow.from_client_secrets_file( CLIENT_SECRET_FILE, scopes=[ 'https://www.googleapis.com/auth/meetings.space.created', ]) flow.run_local_server(port=0) credentials = flow.credentials if credentials and credentials.expired: credentials.refresh(requests.Request()) if credentials is not None: with open("token.json", "w") as f: f.write(credentials.to_json()) return credentials USER_CREDENTIALS = authorize()Для запуска кода необходимы как идентификатор клиента, так и ранее созданный секрет. Скопируйте загруженный файл с секретом клиента в рабочий каталог проекта и переименуйте его в
client_secret.json.Чтобы проверить работу авторизации, выполните следующую команду. Приложение запросит авторизацию и после одобрения запроса создаст файл
token.jsonв рабочем каталоге проекта.python3 main.py
Добавьте REST API Meet.
Теперь, когда авторизационный код готов, пришло время включить и вызвать REST API Meet.
Включите API
Хотя этот раздел посвящен REST API Meet, в данном руководстве также используются Google Cloud Pub/Sub и Google Workspace Events API.
Консоль Google API
В консоли Google API включите REST API Google Meet, API событий Google Workspace и Google Cloud Pub/Sub.
Убедитесь, что вы включаете API в правильном облачном проекте, затем нажмите «Далее» .
Убедитесь, что вы включаете правильные API, затем нажмите «Включить» .
gcloud CLI
При необходимости установите в качестве текущего проекта Cloud тот, который вы создали с помощью команды
gcloud config set project:gcloud config set project PROJECT_IDЗамените PROJECT_ID на идентификатор проекта Cloud, который вы создали.
Включите REST API Google Meet, API событий Google Workspace и Google Cloud Pub/Sub с помощью команды
gcloud services enable:gcloud services enable meet.googleapis.com workspaceevents.googleapis.com pubsub.googleapis.com
Установите клиентскую библиотеку Meet REST API.
Выполните следующие действия для установки клиентской библиотеки Meet REST API:
Выполните команду:
pip install google-apps-meetОтредактируйте файл
main.py, чтобы импортировать клиент:from google.apps import meet_v2 as meet
Создайте пространство
Теперь, когда доступен REST API Meet, определите функцию для создания пространства для совещаний, на которое можно подписаться.
Отредактируйте main.py и добавьте:
def create_space() -> meet.Space:
"""Create a meeting space."""
client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS)
request = meet.CreateSpaceRequest()
return client.create_space(request=request)
Подпишитесь на мероприятия
Чтобы получать события, касающиеся переговорной комнаты, необходимо создать подписку с помощью API событий Google Workspace. Также необходимо создать и подписаться на тему Google Cloud Pub/Sub, которая будет служить конечной точкой уведомлений, куда ваше приложение будет получать события.
Настройка Google Cloud Pub/Sub
To create and subscribe to a Pub/Sub topic:
Консоль Google API
- In the Google API Console, go to Menu > Pub/Sub .
Перейти в раздел "Публикация/Подписка"
Убедитесь, что для вашего приложения выбран облачный проект.
- Нажмите кнопку , чтобы создать тему , и выполните следующие действия:
- Введите
workspace-eventsв качестве имени темы. - Оставьте выбранным параметр «Добавить подписку по умолчанию» .
- Нажмите «Создать» . Полное название вашей темы будет иметь формат
projects/{project}/topics/{topic}. Запишите это название для использования на последующих этапах.
- Введите
- Предоставьте доступ на публикацию сообщений Pub/Sub в вашей теме:
- На боковой панели откройте вкладку «Разрешения» .
- Нажмите «Добавить основного пользователя» .
- В поле «Новые участники» введите
meet-api-event-push@system.gserviceaccount.com. - В разделе «Назначение ролей» выберите
Pub/Sub Publisher. - Нажмите « Сохранить ».
Обновление прав доступа к вашей теме может занять несколько минут.
gcloud CLI
- В вашем проекте Cloud создайте тему, выполнив следующую команду:
gcloud pubsub topics create workspace-eventsВ результате отображается полное название темы в формате
projects/{project}/topics/{topic}. Запишите это название для использования на последующих этапах. - Предоставьте доступ к публикации сообщений в вашей теме:
gcloud pubsub topics add-iam-policy-binding workspace-events --member='serviceAccount:meet-api-event-push@system.gserviceaccount.com' --role='roles/pubsub.publisher'Обновление прав доступа к вашей теме может занять несколько минут.
- Создайте подписку Pub/Sub для данной темы:
gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAMEЗамените следующее:
-
TOPIC_NAME: Название темы, которую вы создали на предыдущем шаге.
-
Запишите название темы и убедитесь, что значение для {project} соответствует идентификатору облачного проекта вашего приложения. Позже вы будете использовать название темы для создания подписки на Google Workspace.
Создайте учетную запись службы
Консоль Google API
- В консоли Google API перейдите в > IAM и администрирование > Сервисные учетные записи .
- Нажмите «Создать учетную запись службы» .
- Заполните данные учетной записи службы, затем нажмите «Создать и продолжить» .
- В разделе «Предоставить этой учетной записи службы доступ к проекту» добавьте следующие роли:
-
roles/pubsub.subscriber
-
- Нажмите «Продолжить» .
- Необязательно: укажите пользователей или группы, которые могут управлять этой учетной записью службы и выполнять с ней действия. Дополнительные сведения см. в разделе «Управление имитацией учетной записи службы» .
- Нажмите «Готово» . Запишите адрес электронной почты учетной записи службы.
gcloud CLI
- Создайте учетную запись службы:
gcloud iam service-accounts create meet-event-listener \ --display-name="meet-event-listener" - Предоставьте учетной записи службы необходимые права доступа:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:meet-event-listener@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"Замените
PROJECT_IDна идентификатор вашего проекта в Google Cloud.
Используйте служебный аккаунт
После создания учетной записи службы предоставьте себе доступ для имитации этой учетной записи.
Консоль Google API
- В столбце «Действия» для только что созданной учетной записи службы нажмите > Управление разрешениями .
- Нажмите «Добавить ключ» > «Предоставить доступ» .
- Введите свой адрес электронной почты в поле «Добавить руководителей» .
- Выберите роль «Учетные записи служб» > «Создатель токенов учетных записей служб» .
- Нажмите « Сохранить ».
- Вернитесь к терминалу и войдите в систему с помощью
gcloud, чтобы установить учетные данные приложения по умолчанию для учетной записи службы. Когда появится запрос на авторизацию, войдите в систему, используя ту же учетную запись, что и на предыдущих шагах.gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
gcloud CLI
- Чтобы добавить разрешение, выполните команду
gcloud iam service-accounts add-iam-policy-bindingиспользуя адрес электронной почты учетной записи службы и пользователя.gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --member="user:YOUR_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator" - Войдите в систему, чтобы установить учетные данные приложения по умолчанию для служебной учетной записи. При запросе авторизации войдите в систему, используя ту же учетную запись, что и на предыдущих шагах.
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
Установите клиентскую библиотеку Pub/Sub.
Для установки клиентской библиотеки для Pub/Sub используйте
pip:pip install google-cloud-pubsubЗатем отредактируйте
main.py, чтобы импортировать клиент:from google.cloud import pubsub_v1
Создайте подписку Google Workspace
Добавьте следующий код в main.py , чтобы определить метод для подписки на события Meet. Этот код подписывается на все события для пространства встреч. После подписки события публикуются в топик Pub/Sub.
def subscribe_to_space(space_name: str = None, topic_name: str = None):
"""Subscribe to events for a meeting space."""
session = requests.AuthorizedSession(USER_CREDENTIALS)
body = {
'targetResource': f"//meet.googleapis.com/{space_name}",
"eventTypes": [
"google.workspace.meet.conference.v2.started",
"google.workspace.meet.conference.v2.ended",
"google.workspace.meet.participant.v2.joined",
"google.workspace.meet.participant.v2.left",
"google.workspace.meet.recording.v2.fileGenerated",
"google.workspace.meet.transcript.v2.fileGenerated",
],
"payloadOptions": {
"includeResource": False,
},
"notificationEndpoint": {
"pubsubTopic": topic_name
},
"ttl": "86400s",
}
response = session.post("https://workspaceevents.googleapis.com/v1/subscriptions", json=body)
return response
Далее добавьте соответствующий код для получения и обработки событий.
Выслушивайте события и реагируйте на них.
Продолжите редактирование файла main.py и добавьте следующий пример кода. Этот код реализует сторону приема и использует API Google Cloud Pub/Sub для получения событий по мере их появления. Различные методы обработчика выводят информацию о соответствующих событиях.
def format_participant(participant: meet.Participant) -> str:
"""Formats a participant for display on the console."""
if participant.anonymous_user:
return f"{participant.anonymous_user.display_name} (Anonymous)"
if participant.signedin_user:
return f"{participant.signedin_user.display_name} (ID: {participant.signedin_user.user})"
if participant.phone_user:
return f"{participant.phone_user.display_name} (Phone)"
return "Unknown participant"
def fetch_participant_from_session(session_name: str) -> meet.Participant:
"""Fetches the participant for a session."""
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
# Use the parent path of the session to fetch the participant details
parsed_session_path = client.parse_participant_session_path(session_name)
participant_resource_name = client.participant_path(
parsed_session_path["conference_record"],
parsed_session_path["participant"])
return client.get_participant(name=participant_resource_name)
def on_conference_started(message: pubsub_v1.subscriber.message.Message):
"""Display information about a conference when started."""
payload = json.loads(message.data)
resource_name = payload.get("conferenceRecord").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
conference = client.get_conference_record(name=resource_name)
print(f"Conference (ID {conference.name}) started at {conference.start_time.rfc3339()}")
def on_conference_ended(message: pubsub_v1.subscriber.message.Message):
"""Display information about a conference when ended."""
payload = json.loads(message.data)
resource_name = payload.get("conferenceRecord").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
conference = client.get_conference_record(name=resource_name)
print(f"Conference (ID {conference.name}) ended at {conference.end_time.rfc3339()}")
def on_participant_joined(message: pubsub_v1.subscriber.message.Message):
"""Display information about a participant when they join a meeting."""
payload = json.loads(message.data)
resource_name = payload.get("participantSession").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
session = client.get_participant_session(name=resource_name)
participant = fetch_participant_from_session(resource_name)
display_name = format_participant(participant)
print(f"{display_name} joined at {session.start_time.rfc3339()}")
def on_participant_left(message: pubsub_v1.subscriber.message.Message):
"""Display information about a participant when they leave a meeting."""
payload = json.loads(message.data)
resource_name = payload.get("participantSession").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
session = client.get_participant_session(name=resource_name)
participant = fetch_participant_from_session(resource_name)
display_name = format_participant(participant)
print(f"{display_name} left at {session.end_time.rfc3339()}")
def on_recording_ready(message: pubsub_v1.subscriber.message.Message):
"""Display information about a recorded meeting when artifact is ready."""
payload = json.loads(message.data)
resource_name = payload.get("recording").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
recording = client.get_recording(name=resource_name)
print(f"Recording available at {recording.drive_destination.export_uri}")
def on_transcript_ready(message: pubsub_v1.subscriber.message.Message):
"""Display information about a meeting transcript when artifact is ready."""
payload = json.loads(message.data)
resource_name = payload.get("transcript").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
transcript = client.get_transcript(name=resource_name)
print(f"Transcript available at {transcript.docs_destination.export_uri}")
def on_message(message: pubsub_v1.subscriber.message.Message) -> None:
"""Handles an incoming event from the Google Cloud Pub/Sub API."""
event_type = message.attributes.get("ce-type")
handler = {
"google.workspace.meet.conference.v2.started": on_conference_started,
"google.workspace.meet.conference.v2.ended": on_conference_ended,
"google.workspace.meet.participant.v2.joined": on_participant_joined,
"google.workspace.meet.participant.v2.left": on_participant_left,
"google.workspace.meet.recording.v2.fileGenerated": on_recording_ready,
"google.workspace.meet.transcript.v2.fileGenerated": on_transcript_ready,
}.get(event_type)
try:
if handler is not None:
handler(message)
message.ack()
except Exception as error:
print("Unable to process event")
print(error)
def listen_for_events(subscription_name: str = None):
"""Subscribe to events on the subscription."""
subscriber = pubsub_v1.SubscriberClient()
with subscriber:
future = subscriber.subscribe(subscription_name, callback=on_message)
print("Listening for events")
try:
future.result()
except KeyboardInterrupt:
future.cancel()
print("Done")
Завершите код.
Добавьте следующий код в main.py для вызова методов создания пространства, подписки на события и прослушивания. Обновите константы TOPIC_NAME и SUBSCRIPTION_NAME , указав свои собственные имена тем и подписок, которые вы создали ранее.
Добавьте код в
main.py:space = create_space() print(f"Join the meeting at {space.meeting_uri}") TOPIC_NAME = "projects/PROJECT_ID/topics/TOPIC_ID" SUBSCRIPTION_NAME = "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID" subscription = subscribe_to_space(topic_name=TOPIC_NAME, space_name=space.name) if (subscription.status_code) == 200: listen_for_events(subscription_name=SUBSCRIPTION_NAME) else: print(f"Subscription to Meet events failed, response data: {subscription.content}")Замените следующее:
PROJECT_ID: Уникальный идентификатор облачного проекта для вашего приложения, напримерmy-sample-project-191923.TOPIC_ID: Название темы Pub/Sub, созданной вами в вашем облачном проекте.SUBSCRIPTION_ID: Название вашей подписки, например,workspace-events-sub.
Запустите программу:
python3 main.py
Если вы ранее не запускали программу, при первом запуске она запросит авторизацию. Предоставьте приложению доступ к REST API Meet. После успешного запуска программы вы должны увидеть вывод, похожий на следующий:
Join the meeting at https://meet.google.com/abc-mnop-xyz
Присоединяйтесь к конференции
Для генерации событий для приложения присоединитесь к конференции, используя URL-адрес, отображаемый приложением. После присоединения вы можете попробовать следующие действия для запуска событий:
- Выйдите из зала и снова присоединитесь к собранию.
- Пригласите других или подключитесь по телефону.
- Включите запись и создание расшифровок.
Каждое из этих действий генерирует событие, которое приложение получает и регистрирует в консоли Google API.
Используйте ctrl-c , чтобы прервать программу после завершения работы.
Дополнительно: Дополнительные шаги для проверки
Приложение регистрирует основные сведения о событиях. Чтобы продолжить изучение REST API Meet, попробуйте изменить приложение для выполнения этих дополнительных действий.
Используйте API для работы с пользователями , чтобы получить дополнительную информацию об участниках, вошедших в систему.
def subscribe_to_user(user_name: str = None, topic_name: str = None) -> requests_lib.Response: """Subscribe to events for a user.""" session = requests.AuthorizedSession(USER_CREDENTIALS) body = { "targetResource": f"//cloudidentity.googleapis.com/users/{user_name}", "eventTypes": [ "google.workspace.meet.conference.v2.started", "google.workspace.meet.conference.v2.ended", "google.workspace.meet.participant.v2.joined", "google.workspace.meet.participant.v2.left", "google.workspace.meet.recording.v2.fileGenerated", "google.workspace.meet.transcript.v2.fileGenerated", ], "payloadOptions": { "includeResource": False, }, "notificationEndpoint": {"pubsubTopic": topic_name}, "ttl": "86400s", } response = session.post( "https://workspaceevents.googleapis.com/v1/subscriptions", json=body ) return response service = build("people", "v1", credentials=USER_CREDENTIALS) response = ( service.people() .get(resourceName="people/me", personFields="names,emailAddresses") .execute() ) resource_name = response.get("resourceName") if resource_name.startswith("people/"): resource_name = resource_name[len("people/") :] subscription = subscribe_to_user(topic_name=TOPIC_NAME, user_name=resource_name)В приведенных выше примерах учетных данных обязательно добавьте "https://www.googleapis.com/auth/userinfo.profile" в метод авторизации .
Используйте API Google Drive для загрузки записей и стенограмм.
Вместо загрузки стенограмм с Google Drive, получите их, используя методы структурированных стенограмм в REST API Meet.
Занимайте пространство, а не создавайте его сами.
def get_space(meeting_code: str) -> meet.Space: """Get a meeting space.""" client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS) return client.get_space(name="spaces/" + meeting_code)В приведенных выше примерах учетных данных обязательно добавьте "https://www.googleapis.com/auth/meetings.space.readonly" в метод авторизации .
Необязательно: Уборка
Чтобы избежать списания средств с вашего аккаунта Google API Console за ресурсы, использованные в этом руководстве, мы рекомендуем удалить все созданные ресурсы и проекты.
Чтобы отменить подписку:
Консоль
В консоли Google API перейдите в > Публикации/Подписки > Подписки
Выберите подписку и нажмите Дополнительные действия» .
Нажмите «Удалить» . Откроется окно «Удалить подписку» .
Нажмите «Удалить» .
gcloud CLI
Удалить подписку:
gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
Чтобы удалить тему:
Консоль
В консоли Google API перейдите в > Публикации/Подписки > Темы
Выберите тему и нажмите Дополнительные действия» .
Нажмите кнопку «Удалить» . Откроется окно «Удалить тему» .
Введите команду
deleteи нажмите кнопку Delete .
gcloud CLI
Удалите тему:
gcloud pubsub topics delete TOPIC_NAME
Чтобы удалить проект:
Консоль
- В консоли Google API перейдите на страницу «Управление ресурсами» > IAM и администрирование > Управление ресурсами .
- В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить .
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.
gcloud CLI
Для удаления проекта используйте команду ` gcloud projects delete` :
gcloud projects delete PROJECT_ID
Связанные темы
- Узнайте о типах мероприятий Meet, на которые вы можете подписаться .
- Узнайте больше о возможностях REST API Google Meet и ознакомьтесь с документацией .
- Создайте подписку Google Workspace для доступа к конференц-залам или пользователям Meet, используя API событий Google Workspace.
- Чтобы узнать больше об аутентификации, см. раздел «Настройка экрана согласия OAuth» и выберите области действия .