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

Bu eğitimde, Meet toplantı alanındaki etkinlikleri gözlemlemek ve bunlara tepki vermek için Google Meet REST API'nin Google Workspace Events API ve Google Cloud Pub/Sub ile birlikte nasıl kullanılacağı gösterilmektedir. Örnek uygulama, konferansların ne zaman başladığını ve bittiğini, katılımcıların ne zaman katıldığını veya ayrıldığını ve oluşturulan toplantı yapılarının ne zaman kullanılabileceğini kaydeder.

Belirli bir toplantı alanına abone olmak yerine, kullanıcının sahip olduğu veya düzenlediği tüm toplantı alanlarıyla ilgili etkinlikleri almak için bir Meet kullanıcısına abone olabilirsiniz. Ayrıntılar için Google Workspace Events API belgelerinin Google Meet etkinliklerine abone olma bölümüne bakın.

Ön koşullar

Kuruluşunuzda etkinleştirilmesi gereken ön koşullardan herhangi birine ihtiyacınız varsa Google Workspace yöneticinizden bunları etkinleştirmesini isteyin:

Ortamınızı hazırlayın

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

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

Yeni bir sanal ortam oluşturmak ve 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 konsolu

  1. Google Cloud Console'da Menü > IAM ve Yönetici > Proje Oluştur'a gidin.

    Proje Oluştur'a gidin

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

    İsteğe bağlı: Proje kimliğini düzenlemek için Düzenle'yi tıklayın. Proje oluşturulduktan sonra proje kimliği değiştirilemez. Bu nedenle, projenin kullanım süresi boyunca ihtiyaçlarınızı karşılayacak bir kimlik seçin.

  3. Projeniz için olası konumları görüntülemek üzere Konum alanında Göz at'ı tıklayın. Ardından Seç'i tıklayın.
  4. Oluştur'u 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 CLI'ye (gcloud) erişin:

  • Cloud Shell: gcloud CLI'si önceden ayarlanmış bir internet terminali kullanmak için Cloud Shell'i etkinleştirin.
    Cloud Shell'i etkinleştirme
  • Yerel Kabuk: Yerel bir geliştirme ortamı kullanmak için gcloud CLI'yi yükleyin ve başlatın.
    Cloud 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 değerini değiştirin.

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

Google Cloud konsolu

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

    Projelerim için Faturalandırma'ya gidin

  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 Billing hesabını seçin.
  4. Hesap belirle'yi tıklayın.

gcloud CLI

  1. Mevcut faturalandırma hesaplarını listelemek için şu komutu çalıştırın:
    gcloud billing accounts list
  2. Bir faturalandırma hesabını Google Cloud projesine bağlama:
    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 yetkilendirme ayarlarını yapma

Kimlik doğrulama ve yetkilendirme, uygulamanın Meet REST API kaynaklarına erişmesine olanak tanır. Meet REST API'sini ç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 bulunacağınız açıklanmaktadır.

OAuth kullanıcı rızası ekranını yapılandırma ve kapsamları seçme

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

  1. Google Cloud Console'da 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çip Oluştur'u tıklayın.
  3. Uygulama adı alanına Meet REST API Tutorial yazın.
  4. Uygulama kayıt formunu doldurup 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'nin kapsamlarının listesini içeren bir panel görünür.
  6. Kapsamları manuel olarak ekle bölümünde 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'ı tıklayın.
  10. Kullanıcı türü için Harici'yi seçtiyseniz test kullanıcıları ekleyin:
    1. Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
    2. E-posta adresinizi ve diğer yetkili test kullanıcılarını girin, ardından Kaydet ve Devam'ı tıklayın.
  11. Uygulama kaydı özetinizi inceleyin. Değişiklik yapmak için Düzenle'yi tıklayın. Uygulama kaydının sorunsuz görünmesi durumunda Kontrol paneline dön'ü tıklayın.

İstemci kimliği oluşturma

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

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

    Kimlik Bilgileri'ne gidin

  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, kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. Oluştur'u tıklayın. Yeni istemci kimliğinizi ve istemci gizli anahtarınızı gösteren OAuth istemcisi oluşturuldu ekranı gösterilir.
  6. Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi OAuth 2.0 İstemci Kimlikleri altında görünür.

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

Yetkilendirmeyi yürütme

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

  1. Çalışma dizininizde main.py dosyasını oluşturun ve aşağıdaki içeriği 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 gerekir. İndirilen istemci gizli anahtarı dosyasını proje çalışma dizinine kopyalayın ve client_secret.json olarak yeniden adlandırın.

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

    python3 main.py

Meet REST API'sini ekleme

Yetkilendirme kodu tamamlandığında Meet REST API'yi etkinleştirme ve çağırma zamanı gelir.

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 Events API de kullanılmaktadır.

Google Cloud konsolu

  1. Google Cloud Console'da Google Meet REST API'yi, Google Workspace Events API'yi ve Google Cloud Pub/Sub'ı etkinleştirin.

    API'leri etkinleştirme

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

  3. Doğru API'leri etkinleştirdiğinizden emin olduktan sonra Etkinleştir'i tıklayın.

gcloud CLI

  1. Gerekirse mevcut 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 komutunu kullanarak Google Meet REST API, Google Workspace Events API ve Google Cloud Pub/Sub'u 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. Aşağıdaki 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 sunulduğuna göre, abone olunabilecek bir toplantı alanı oluşturmak için bir işlev tanımlayın.

main.py'yi düzenleyin ve aşağıdakileri ekleyin:

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 olma

Toplantı alanıyla ilgili etkinlikleri almak için Google Workspace Events API'yi kullanarak abonelik oluşturursunuz. Ayrıca, uygulamanızın etkinlikleri aldığı bildirim uç noktası olarak hizmet veren 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 abone olmak için:

Google Cloud konsolu

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

    Pub/Sub'a gitme

    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 yazın.
    2. Varsayılan abonelik ekle'yi seçili bırakın.
    3. Oluştur'u tıklayın. Tam konu adınız projects/{project}/topics/{topic} şeklinde biçimlendirilir. Sonraki adımlarda kullanmak üzere bu adı not edin.
  3. Konunuza Pub/Sub mesajları yayınlama erişimi 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 ata 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ğıdakileri çalıştırarak bir konu oluşturun:
    gcloud pubsub topics create workspace-events

    Çıktı, projects/{project}/topics/{topic} biçiminde biçimlendirilmiş tam konu adını gösterir. Sonraki adımlarda kullanmak üzere bu adı not edin.

  2. Konunuzda mesaj yayınlama erişimi 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. 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 konunun adı.

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

Hizmet hesabı oluşturma

Google Cloud konsolu

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

    Hizmet Hesaplarına gidin

  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 rol atayın. Daha fazla bilgi için Kaynaklara erişim 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önetebilecek ve bu hesapta işlem yapabilecek kullanıcıları veya grupları girin. Daha fazla bilgi için Hizmet hesabı kimliğine bürünmeyi yönetme başlıklı makaleyi inceleyin.
  7. Bitti'yi 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 rol atayın. Daha fazla bilgi için Kaynaklara erişim 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 konsolu

  1. Yeni oluşturulan hizmet hesabının İşlemler sütununda, > İzinleri yönet'i tıklayın.
  2. Anahtar ekle > Erişim izni ver'i tıklayın.
  3. Ana hesap ekle bölümünde e-posta adresinizi girin.
  4. Rol olarak Hizmet hesapları > Hizmet Hesabı Jeton Oluşturucu'yu seçin.
  5. Kaydet'i tıklayın.
  6. Uygulamanın varsayılan kimlik bilgilerini hizmet hesabına ayarlamak için terminalinize dönün ve gcloud ile oturum açın. Yetkilendirme isteğinde bulunulduğunda, önceki adımlarda kullanılan hesabı kullanarak oturum açın.
    gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL

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 çalıştırın.
    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --member="user:YOUR_EMAIL \
      --role="roles/iam.serviceAccountTokenCreator"
  2. Uygulamanın varsayılan kimlik bilgilerini hizmet hesabına ayarlamak için oturum açın. Yetkilendirme isteğinde bulunulduğunda, önceki adımlarda kullanılan hesabı kullanarak oturum açın.
    gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL

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

  1. Pub/Sub istemci kitaplığını yüklemek için 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ğini oluşturma

Meet etkinliklerine abone olma yöntemini tanımlamak için main.py alanına aşağıdaki kodu ekleyin. Bu kod, bir toplantı alanının tüm etkinliklerine abone olur. Abone olduğunuzda etkinlikler Pub/Sub konusuna gönderilir.

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 alıp işlemek için ilgili kodu ekleyin.

Etkinlikleri dinleme ve işleme

main.py dosyasını düzenlemeye devam edin ve aşağıdaki örnek kodu ekleyin. Bu kod, alıcı tarafı uygular ve etkinlikleri kullanıma sunulduğu anda almak için Google Cloud Pub/Sub API'yi kullanır. Çeşitli işleyici yöntemleri, ilgili etkinliklerle ilgili 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")

Kodu tamamlama

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

  1. Kodu main.py'e 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 için benzersiz Cloud proje 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 kez çalıştırdığınızda yetkilendirme istenir. Meet REST API'yi çağırması 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ılma

Uygulama için etkinlik oluşturmak istiyorsanız uygulama tarafından görüntülenen URL'yi kullanarak konferansa katılın. Katılımdan sonra, etkinlikleri tetiklemek için aşağıdaki işlemleri deneyebilirsiniz:

  • Toplantıdan ayrılıp tekrar katılın.
  • Başkalarını davet edin veya telefonunuzla katılın.
  • Kayıtları ve transkriptleri etkinleştirin.

Bu etkinliklerin her biri, uygulamanın aldığı ve Google Cloud Console'a kaydettiği bir etkinlik oluşturur.

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

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

Uygulama, etkinliklerle ilgili temel bilgileri 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ğitimde 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 Console'da Menü > Pub/Sub > Abonelikler'e gidin.

    Abonelikler'e gidin

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

    gcloud pubsub subscriptions delete SUBSCRIPTION_NAME

Konuyu silmek için:

Konsol

  1. Google Cloud Console'da 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 simgesini girip Sil'i tıklayın.

gcloud CLI

  1. Konuyu silme:

    gcloud pubsub topics delete TOPIC_NAME

Projeyi silmek için:

Konsol

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

    Resource Manager'a gidin

  2. Proje listesinde, silmek istediğiniz projeyi seçin ve ardından Sil'i tıklayın.
  3. İletişim kutusuna proje kimliğini yazın ve 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