Google Workspace aboneliklerini listeleme

Bu sayfada, subscriptions.list() yöntemi kullanılarak Google Workspace aboneliklerinin nasıl listeleneceği açıklanmaktadır.

Bu yöntemi kullanıcı kimlik doğrulamasıyla çağırdığınızda yöntem, kullanıcı tarafından yetkilendirilmiş aboneliklerin listesini döndürür. Uygulama kimlik doğrulamasını kullandığınızda yöntem, uygulamaya ait tüm abonelikleri içeren bir liste döndürebilir.

Ön koşullar

Apps Komut Dosyası

  • Apps Komut Dosyası projesi:
    • Apps Komut Dosyası tarafından otomatik olarak oluşturulan varsayılan proje yerine Google Cloud projenizi kullanın.
    • OAuth izin ekranını yapılandırmak için eklediğiniz tüm kapsamları, Apps Komut Dosyası projenizdeki appsscript.json dosyasına da eklemeniz gerekir. Örneğin:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Google Workspace Events gelişmiş hizmetini etkinleştirin.

Python

  • Python 3.6 veya sonraki sürümler
  • pip paket yönetim aracı
  • Python için en son Google istemci kitaplıkları. Bunları yüklemek veya güncellemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Google Workspace aboneliği Abonelik oluşturmak için Abonelik oluşturma başlıklı makaleyi inceleyin.

  • Kimlik doğrulama gerektirir:

    • Kullanıcı kimlik doğrulaması için aboneliğin etkinlik türlerinden en az birini destekleyen bir kapsam gerekir. Bir kapsamı tanımlamak için Etkinlik türüne göre kapsamlar başlıklı makaleyi inceleyin.
    • Uygulama kimlik doğrulaması için chat.bot kapsamı (yalnızca Google Chat uygulamaları) gerekir.

Kullanıcı tarafından yetkilendirilen abonelikleri listeleme

Abonelikleri listelemek için en az bir etkinlik türüne göre filtreleme yapmanız gerekir. Sorgunuzu bir veya daha fazla hedef kaynağa göre de filtreleyebilirsiniz. Desteklenen sorgu filtreleri hakkında bilgi edinmek için list() yöntemi belgelerine bakın.

Aşağıdaki kod örneği, etkinlik türüne ve hedef kaynağa göre filtrelenen bir Subscription nesnesi dizisi döndürür. Kullanıcı olarak kimlik doğrulaması yapıldığında yöntem yalnızca kullanıcının uygulamanın oluşturmasına yetki verdiği aboneliklerin listesini döndürür.

Belirtilen etkinlik türü ve hedef kaynak için abonelikleri listelemek üzere:

Apps Komut Dosyası

  1. Apps Komut Dosyası projenizde listSubscriptions adlı yeni bir komut dosyası dosyası oluşturun ve aşağıdaki kodu ekleyin:

    function listSubscriptions() {
      // Filter for event type (required).
      const eventType = 'EVENT_TYPE';
    
      // Filter for target resource (optional).
      const targetResource = 'TARGET_RESOURCE';
    
      const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"`
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.list({ filter });
      console.log(response);
    }
    

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

    • EVENT_TYPE: CloudEvents spesifikasyonuna göre biçimlendirilmiş bir etkinlik türü. Örneğin, google.workspace.chat.message.v1.created adlı bir Google Chat alanına yeni üyeliklerle ilgili etkinlikler alan abonelikleri filtrelemek için:
    • TARGET_RESOURCE: Tam kaynak adı olarak biçimlendirilmiş bir hedef kaynak. Örneğin, bir Google Chat alanının aboneliklerine göre filtrelemek için //chat.googleapis.com/spaces/SPACE_ID değerini kullanın. Bu ifadede spaces/SPACE_ID, Space kaynağının name alanını temsil eder.
  2. Abonelikleri listelemek için Apps Komut Dosyası projenizde listSubscriptions işlevini çalıştırın.

Python

  1. Çalışma dizininizde list_subscriptions.py adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:

    """List subscriptions."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['SCOPE']
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    # Filter for event type (required).
    EVENT_TYPE = 'EVENT_TYPE'
    
    # Filter for target resource (optional).
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"'
    response = service.subscriptions().list(filter=FILTER).execute()
    print(response)
    

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

    • SCOPE: Abonelikten en az bir etkinlik türünü destekleyen bir OAuth kapsamı. Örneğin, aboneliğiniz güncellenmiş bir Chat alanı https://www.googleapis.com/auth/chat.spaces.readonly için etkinlik alıyorsa.
    • EVENT_TYPE: CloudEvents spesifikasyonuna göre biçimlendirilmiş bir etkinlik türü. Örneğin, google.workspace.chat.message.v1.created adlı bir Google Chat alanına yeni üyeliklerle ilgili etkinlikler alan abonelikleri filtrelemek için:
    • TARGET_RESOURCE: Tam kaynak adı olarak biçimlendirilmiş bir hedef kaynak. Örneğin, bir Google Chat alanının aboneliklerine göre filtrelemek için //chat.googleapis.com/spaces/SPACE_ID değerini kullanın. Bu ifadede spaces/SPACE_ID, Space kaynağının name alanını temsil eder.
  2. Çalışma dizininizde OAuth istemci kimliği kimlik bilgilerinizi kaydettiğinizden ve dosyayı client_secrets.json olarak adlandırdığınızdan emin olun. Kod örneği, Google Workspace ile kimlik doğrulaması yapmak ve kullanıcı kimlik bilgilerini almak için bu JSON dosyasını kullanır. Talimatlar için OAuth istemci kimliği kimlik bilgilerini oluşturma başlıklı makaleyi inceleyin.

  3. Abonelikleri listelemek için terminalinizde aşağıdaki komutu çalıştırın:

    python3 list_subscriptions.py

Google Workspace Events API, sorgunuzun filtresiyle eşleşen Subscription nesnesi içeren sayfalandırılmış bir dizi döndürür.