Python ve Google Meet REST API ile toplantı etkinliklerini gözlemleme

Bu eğitim, toplantı etkinliklerini gözlemlemek ve bunlara tepki vermek için Google Workspace Etkinlikleri API'si ve Google Cloud Pub/Sub'la birlikte Google Meet REST API'nin nasıl kullanılacağını gösterir. Örnek uygulama, konferansların ne zaman başlayıp bittiğini, katılımcıların katıldığı veya ayrıldığı ve oluşturulmuş toplantı yapılarının ne zaman hazır olduğunu kaydeder.

Etkinliklerle çalışma hakkında daha fazla bilgi edinmek için Google Workspace Etkinlikleri API belgelerindeki Google Meet etkinliklerine abone olma başlıklı makaleyi inceleyin.

Ön koşullar

Kuruluşunuzda aşağıdaki ön koşullardan herhangi birinin etkinleştirilmesi gerekiyorsa Google Workspace yöneticinizden bunları etkinleştirmesini isteyin:

Ortamınızı hazırlayın

Bu bölümde, bu eğitim için yerel ortamınızı ve Google Cloud projesini nasıl oluşturup yapılandıracağınız gösterilmektedir.

Çalışma dizini ve Python sanal ortamı oluşturma

Yeni bir sanal ortam oluşturup etkinleştirmek için terminalinizde aşağıdaki komutları çalıştırın.

Linux/macOS

mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
source env/bin/activate

Windows (komut istemi)

mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
env/bin/activate.bat

Windows (PowerShell)

mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
env/bin/activate.ps1

Google Cloud projesi oluşturma

Google Cloud Console

  1. Google Cloud konsolunda Menü > IAM ve Yönetici > Proje oluştur'a gidin.

    Proje Oluşturma bölümüne git

  2. Proje Adı alanına projeniz için açıklayıcı bir ad girin.

    İsteğe bağlı: Proje Kimliği'ni düzenlemek için Düzenle'yi tıklayın. Proje kimliği, proje oluşturulduktan sonra değiştirilemez. Bu nedenle, projenin ömrü boyunca ihtiyaçlarınızı karşılayan bir kimlik seçin.

  3. Konum alanında projeniz için potansiyel konumları görüntülemek üzere Göz at'ı tıklayın. Ardından Seç'i tıklayın.
  4. Create'i (Oluştur) tıklayın. Google Cloud Console, Kontrol Paneli sayfasına gider ve projeniz birkaç dakika içinde oluşturulur.

gcloud CLI

Aşağıdaki geliştirme ortamlarından birinde Google Cloud KSA'ya ("gcloud") erişin:

  • Cloud Shell: Halihazırda gcloud KSA bulunan bir online terminal kullanmak için Cloud Shell'i etkinleştirin.
    Cloud Shell'i etkinleştir
  • Yerel Kabuk: Yerel bir geliştirme ortamı kullanmak için gcloud KSA'yı yükleyin ve initialize.
    Bulut projesi oluşturmak için "gcloud projects create" komutunu kullanın:
    gcloud projects create PROJECT_ID
    Oluşturmak istediğiniz projenin kimliğini ayarlayarak PROJECT_ID komutunu değiştirin.

Google Cloud projesi için faturalandırmayı etkinleştirin

Google Cloud Console

  1. Google Cloud konsolunda Faturalandırma'ya gidin. Menü > Faturalandırma > Projelerim'i tıklayın.

    Projelerim için Faturalandırma sayfasına git

  2. Kuruluş seçin bölümünde Google Cloud projenizle ilişkili kuruluşu seçin.
  3. Proje satırında İşlemler menüsünü () açın, Faturalandırmayı değiştir'i tıklayın ve Cloud Faturalandırma Hesabı'nı seçin.
  4. Hesap belirle'yi tıklayın.

gcloud CLI

  1. Kullanılabilir faturalandırma hesaplarını listelemek için şu komutu çalıştırın:
    gcloud billing accounts list
  2. Faturalandırma hesabını bir Google Cloud projesine bağlayın:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Aşağıdakini değiştirin:

    • PROJECT_ID, faturalandırmayı etkinleştirmek istediğiniz Cloud projesinin Proje Kimliğidir.
    • BILLING_ACCOUNT_ID, Google Cloud projesine bağlanacak faturalandırma hesabı kimliğidir.

Kimlik doğrulama ve yetkilendirmeyi ayarlama

Kimlik doğrulama ve yetkilendirme, uygulamanın Meet REST API kaynaklarına erişmesini sağlar. Meet REST API'yi çağırmak için kullanıcı yetkilendirmesi gerekir. Bu bölümde, kullanıcı kimlik bilgilerini nasıl yapılandıracağınız ve yetkilendirme isteğinde nasıl bulunacağınız açıklanmaktadır.

OAuth izin ekranını yapılandırma ve kapsamları seçme

Aşağıdaki adımlarda, uygulamanız için OAuth izin ekranını yapılandırmak üzere yer tutucu bilgileri önerilmiştir. Uygulamayı harici olarak yayınlamadan önce bu bilgileri güncelleyin.

  1. Google Cloud konsolunda Menü > API'ler ve Hizmetler > OAuth izin ekranı'na gidin.

    OAuth izin ekranına gidin

  2. Kullanıcı türü bölümünde, Dahili'yi seçin ve Oluştur'u tıklayın.
  3. Uygulama adı alanına Meet REST API Tutorial yazın.
  4. Uygulama kayıt formunu doldurun, ardından Kaydet ve Devam Et'i tıklayın.
  5. Kapsam Ekle veya Kaldır'ı tıklayın. Google Cloud projenizde etkinleştirdiğiniz her API için kapsam listesinin bulunduğu bir panel görünür.
  6. Kapsamları manuel olarak ekle bölümüne aşağıdaki kapsamları yapıştırın:
    • https://www.googleapis.com/auth/meetings.space.created
  7. Tabloya Ekle'yi tıklayın.
  8. Güncelle'yi tıklayın.
  9. Uygulamanızın gerektirdiği kapsamları seçtikten sonra Kaydet ve Devam Et'i tıklayın.
  10. Kullanıcı türü için Harici'yi seçtiyseniz test kullanıcıları ekleyin:
    1. Test kullanıcıları'nın altında Kullanıcı ekle'yi tıklayın.
    2. E-posta adresinizi ve diğer yetkili test kullanıcılarını girip Kaydet ve Devam Et'i tıklayın.
  11. Uygulama kaydı özetinizi inceleyin. Değişiklik yapmak için Düzenle'yi tıklayın. Uygulama kaydı sorunsuz görünüyorsa Kontrol Paneline Dön'ü tıklayın.

İstemci kimliği oluşturun

İstemci kimliği, OAuth 2.0 akışları sırasında uygulamanızın kimlik bilgileri olarak işlev görür. Uygulama yerel olarak çalıştığından bir masaüstü istemci kimliği oluşturun.

  1. Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri'ne gidin.

    Kimlik Bilgileri'ne git

  2. Kimlik Bilgileri Oluştur > OAuth istemci kimliği'ni tıklayın.
  3. Uygulama türü > Masaüstü uygulaması'nı tıklayın.
  4. Ad alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. Create'i (Oluştur) tıklayın. OAuth istemcisi oluşturma ekranı görünür ve yeni İstemci Kimliğinizi ve İstemci sırrınızı gösterir.
  6. Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi, OAuth 2.0 İstemci Kimlikleri bölümünde gösterilir.

Google kimlik doğrulama kitaplıklarını yükleme

Google kimlik doğrulama kitaplıklarını yükleyin:

pip install google-auth google-auth-oauthlib

Yetkilendirme yürütme

Meet REST API, OAuth 2.0 erişim jetonu biçiminde kullanıcı kimlik bilgileri gerektirir. Bu bölümde, kullanıcı için erişim jetonu ve yenileme jetonu istemek üzere OAuth 2.0 akışını uygulayacaksınız.

  1. Çalışma dizininizde main.py dosyasını oluşturun ve aşağıdaki içerikleri ekleyin:

    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()
    
  2. Kodu çalıştırmak için hem istemci kimliği hem de daha önce oluşturulan gizli anahtar gereklidir. İndirilen istemci gizli anahtarı dosyasını proje çalışma dizinine kopyalayın ve client_secret.json olarak yeniden adlandırın.

  3. Yetkilendirme işleminin nasıl çalıştığını test etmek istiyorsanız aşağıdaki komutu çalıştırın. Uygulama, yetkilendirme ister ve istek onaylandıktan sonra proje çalışma dizininde bir token.json dosyası oluşturur.

    python3 main.py
    

Meet REST API'yi ekleyin

Yetkilendirme kodu tamamlandı. Şimdi sıra Meet REST API'yi etkinleştirip çağırmaya geldi.

API'leri etkinleştirme

Bu bölümde Meet REST API'ye odaklanılmış olsa da bu eğitimde Google Cloud Pub/Sub ve Google Workspace Etkinlikler API'si de kullanılmaktadır.

Google Cloud Console

  1. Google Cloud konsolunda Google Meet REST API, Google Workspace Etkinlikler API'si ve Google Cloud Pub/Sub'ı etkinleştirin.

    API'leri etkinleştirme

  2. API'leri doğru Cloud projesinde etkinleştirdiğinizi onaylayın ve İleri'yi tıklayın.

  3. Doğru API'leri etkinleştirmekte olduğunuzu onaylayın ve Etkinleştir'i tıklayın.

gcloud CLI

  1. Gerekirse geçerli Cloud projesini gcloud config set project komutuyla oluşturduğunuz projeye ayarlayın:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID kısmını, oluşturduğunuz Cloud projesinin Proje Kimliği ile değiştirin.

  2. gcloud services enable komutuyla Google Meet REST API, Google Workspace Etkinlikler API'si ve Google Cloud Pub/Sub'ı etkinleştirin:

    gcloud services enable meet.googleapis.com workspaceevents.googleapis.com pubsub.googleapis.com
    

Meet REST API istemci kitaplığını yükleme

Meet REST API istemci kitaplığını yüklemek için aşağıdaki adımları uygulayın:

  1. Şu komutu çalıştırın:

    pip install google-apps-meet
    
  2. İstemciyi içe aktarmak için main.py dosyasını düzenleyin:

    from google.apps import meet_v2 as meet
    

Alan oluşturma

Meet REST API kullanıma sunulduktan sonra abone olunabilecek toplantı alanı oluşturmak için bir işlev tanımlayabilirsiniz.

main.py öğesini düzenle ve ekle:

def create_space() -> meet.Space:
    """Create a meeting space."""
    client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS)
    request = meet.CreateSpaceRequest()
    return client.create_space(request=request)

Etkinliklere abone ol

Bir toplantı alanıyla ilgili etkinlikleri almak için Google Workspace Event API'yi kullanarak abonelik oluşturursunuz. Ayrıca, uygulamanızın etkinlikleri aldığı bildirim uç noktası görevi gören bir Google Cloud Pub/Sub konusu oluşturmanız ve bu konuya abone olmanız gerekir.

Google Cloud Pub/Sub'ı yapılandırma

Pub/Sub konusu oluşturmak ve bu konuya abone olmak için:

Google Cloud Console

  1. Google Cloud konsolunda Menü > Pub/Sub'a gidin.

    Pub/Sub'a git

    Uygulamanız için Cloud projesinin seçildiğinden emin olun.

  2. Konu oluştur'u tıklayın ve aşağıdakileri yapın:
    1. Konu adı olarak workspace-events girin.
    2. Add a default subscription (Varsayılan abonelik ekle) seçeneğini işaretli bırakın.
    3. Create'i (Oluştur) tıklayın. Konunuzun tam adı projects/{project}/topics/{topic} şeklinde biçimlendirilir. Sonraki adımlarda kullanmak için bu adı bir yere not edin.
  3. Konunuza Pub/Sub mesajları yayınlamak için erişim izni verin:
    1. Yan panelde İzinler sekmesini açın.
    2. Ana Hesap Ekle'yi tıklayın.
    3. Yeni ana hesaplar alanına meet-api-event-push@system.gserviceaccount.com girin.
    4. Rol atama bölümünde Pub/Sub Publisher'yi seçin.
    5. Kaydet'i tıklayın.

    Konunuzun izinlerinin güncellenmesi birkaç dakika sürebilir.

gcloud CLI

  1. Cloud projenizde aşağıdaki komutu çalıştırarak bir konu oluşturun:
    gcloud pubsub topics create workspace-events

    Çıkış, projects/{project}/topics/{topic} olarak biçimlendirilmiş tam konu adını gösterir. Sonraki adımlarda kullanmak için bu adı bir yere not edin.

  2. Konunuza mesaj yayınlamak için erişim izni verin:
     gcloud pubsub topics add-iam-policy-binding workspace-events --member='serviceAccount:meet-api-event-push@system.gserviceaccount.com' --role='roles/pubsub.publisher'

    Konunuzun izinlerinin güncellenmesi birkaç dakika sürebilir.

  3. Şu konu için bir Pub/Sub aboneliği oluşturun:
    gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAME

    Aşağıdakini değiştirin:

    • TOPIC_NAME: Önceki adımda oluşturduğunuz konunuzun adı.

Konu adını not edin ve {project} değerinin, uygulamanızın Cloud projesi kimliği olduğundan emin olun. Daha sonra Google Workspace aboneliğini oluşturmak için konu adını kullanacaksınız.

Hizmet hesabı oluşturma

Google Cloud Console

  1. Google Cloud konsolunda Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesapları'na git

  2. Hizmet hesabı oluştur'u tıklayın.
  3. Hizmet hesabı ayrıntılarını girip Oluştur ve devam et'i tıklayın.
  4. İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha fazla bilgi için Kaynaklara erişim izni verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.
  5. Devam'ı tıklayın.
  6. İsteğe bağlı: Bu hizmet hesabını yönetebilen ve işlem gerçekleştirebilecek kullanıcıları veya grupları girin. Daha fazla bilgi için Hizmet hesabı kimliğine bürünmeyi yönetme başlıklı makaleye bakın.
  7. Done'ı (Bitti) tıklayın. Hizmet hesabının e-posta adresini not edin.

gcloud CLI

  1. Hizmet hesabını oluşturun:
    gcloud iam service-accounts create meet-event-listener \
      --display-name="meet-event-listener"
  2. İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha fazla bilgi için Kaynaklara erişim izni verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.

Hizmet hesabını kullanma

Hizmet hesabını oluşturduktan sonra, hizmet hesabının kimliğine bürünmek için kendinize erişim izni verin.

Google Cloud Console

  1. Yeni oluşturulan hizmet hesabının İşlemler sütununda > İzinleri yönet'i tıklayın.
  2. Anahtar ekle > Erişim ver'i tıklayın.
  3. Ana hesap ekle bölümünde e-posta adresinizi girin.
  4. Rol olarak Hizmet hesapları > Hizmet Hesabı Jetonu Oluşturucu'yu seçin.
  5. Kaydet'i tıklayın.

gcloud CLI

  1. İzni eklemek için hizmet hesabının ve kullanıcının e-posta adresini kullanarak gcloud iam service-accounts add-iam-policy-binding komutunu çalıştırın.
    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --member="user:YOUR_EMAIL \
      --role="roles/iam.serviceAccountTokenCreator"
  2. Uygulama varsayılan kimlik bilgilerini hizmet hesabı olarak ayarlamak için gcloud ile oturum açın. Yetkilendirme istendiğinde, önceki adımlarda kullandığınız hesapla oturum açın.
    gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL

Pub/Sub istemci kitaplığını yükleme

  1. Pub/Sub için istemci kitaplığını yüklemek üzere pip kullanın:

    pip install google-cloud-pubsub
    
  2. Ardından, istemciyi içe aktarmak için main.py dosyasını düzenleyin:

    from google.cloud import pubsub_v1
    

Google Workspace aboneliği oluşturma

Meet etkinliklerine abone olma yöntemini tanımlamak için main.py öğesine aşağıdaki kodu ekleyin. Bu kod, bir toplantı alanı için tüm etkinliklere abone olur. Abone olunan etkinlikler Pub/Sub konusuna yayınlanır.

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

Ardından, etkinlikleri almak ve işlemek için ilgili kodu ekleyin.

Etkinlikleri dinleme ve işleme

main.py öğesini düzenlemeye ve aşağıdaki örnek kodu eklemeye devam edin. Bu kod, alıcı tarafı uygular ve etkinlikleri kullanıma sunuldukça çekmek için Google Cloud Pub/Sub API'yi kullanır. Çeşitli işleyici yöntemleri, ilgili etkinlikler hakkındaki bilgileri yazdırır.

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

Koda son halini verin

Alan oluşturma, etkinliklere abone olma ve dinleme yöntemlerini çağırmak için main.py öğesine aşağıdaki kodu ekleyin. TOPIC_NAME ve SUBSCRIPTION_NAME sabit değerlerini, daha önce oluşturduğunuz kendi konu ve abonelik adlarınızla güncelleyin.

  1. Kodu main.py hesabına ekleyin:

    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)
    listen_for_events(subscription_name=SUBSCRIPTION_NAME)
    

    Aşağıdakini değiştirin:

    • PROJECT_ID: Uygulamanızın benzersiz Cloud projesi kimliği (ör. my-sample-project-191923).

    • TOPIC_ID: Cloud projenizde oluşturduğunuz Pub/Sub konusunun adı.

    • SUBSCRIPTION_ID: Aboneliğinizin adı (ör. workspace-events-sub).

  2. Programı çalıştırın:

    python3 main.py
    

Programı daha önce çalıştırmadıysanız ilk seferde yetkilendirme ister. Meet REST API'yi çağırmak için uygulamaya erişim izni verin. Program başarıyla çalıştırıldıktan sonra, şuna benzer bir çıkış görürsünüz:

Join the meeting at https://meet.google.com/abc-mnop-xyz

Konferansa katılın

Uygulama için etkinlikler oluşturmak amacıyla, uygulama tarafından görüntülenen URL'yi kullanarak konferansa katılın. Katıldıktan sonra etkinlikleri tetiklemek için şu işlemleri deneyebilirsiniz:

  • Toplantıdan ayrılıp yeniden katılın.
  • Başkalarını davet edin veya telefonla katılın.
  • Kayıtları ve transkriptleri etkinleştir.

Bu işlemlerin her biri, uygulamanın aldığı bir etkinlik oluşturur ve Google Cloud konsoluna kaydeder.

İşiniz bittiğinde programı kesintiye uğratmak için ctrl-c düğmesini kullanın.

İsteğe bağlı: Deneyebileceğiniz ek adımlar

Uygulama, etkinliklerle ilgili temel ayrıntıları günlüğe kaydeder. Meet REST API'yi keşfetmeye devam etmek için uygulamayı bu ek işlemleri gerçekleştirecek şekilde değiştirmeyi deneyin.

İsteğe bağlı: Temizleme

Bu eğiticide kullanılan kaynaklar için Google Cloud Console hesabınızın ücretlendirilmesini istemiyorsanız oluşturulan tüm kaynakları ve projeleri temizlemenizi öneririz.

Aboneliği silmek için:

Konsol

  1. Google Cloud konsolunda Menü > Pub/Sub > Abonelikler'e gidin

    Abonelikler'e git

  2. Aboneliği seçin ve Diğer işlemler'i tıklayın.

  3. Sil'i tıklayın. Aboneliği sil penceresi görünür.

  4. Sil'i tıklayın.

gcloud CLI

  1. Aboneliği silme:

    gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
    

Konuyu silmek için:

Konsol

  1. Google Cloud konsolunda Menü > Pub/Sub > Konular'a gidin

    Konular'a git

  2. Konuyu seçin ve Diğer işlemler'i tıklayın.

  3. Sil'i tıklayın. Konuyu sil penceresi görünür.

  4. delete yazıp Sil'i tıklayın.

gcloud CLI

  1. Konuyu silme:

    gcloud pubsub topics delete TOPIC_NAME
    

Projeyi silmek için:

Konsol

  1. Google Cloud konsolunda Kaynakları yönetin sayfasına gidin. Menü > IAM ve Yönetici > Kaynakları Yönet'i tıklayın.

    Resource Manager'a git

  2. Proje listesinden silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
  3. İletişim kutusuna proje kimliğini yazın, ardından projeyi silmek için Kapat'ı tıklayın.

gcloud CLI

  1. Bir projeyi silmek için gcloud projects delete komutunu kullanın:

    gcloud projects delete PROJECT_ID