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ının yetkilendirdiği aboneliklerin listesini döndürür. Uygulama kimlik doğrulamayı kullandığınızda yöntem, uygulamayla ilgili tüm abonelikleri içeren bir liste döndürebilir.

Ön koşullar

Apps Komut Dosyası

  • Bir 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 için kapsamları Apps Komut Dosyası projenizdeki appsscript.json dosyasına da eklemeniz gerekir. Örneğin, chat.messages kapsamını belirttiyseniz aşağıdakileri ekleyin:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • 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 yeni Google istemci kitaplıkları. Bu araçları 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 abonelikle ilgili etkinlik türlerinden en az birini destekleyen bir kapsam gerekir. Kapsam belirlemek için Etkinlik türüne göre kapsamlar başlıklı makaleye bakın.
    • Uygulama kimlik doğrulaması için chat.bot kapsamı gerekir (yalnızca Google Chat uygulamaları).

Kullanıcı tarafından yetkilendirilen abonelikleri listeleme

Abonelikleri listelemek için en az bir etkinlik türüne göre filtreleme yapmanız gerekir. Ayrıca sorgunuzu bir veya daha fazla hedef kaynağa göre de filtreleyebilirsiniz. Desteklenen sorgu filtreleri hakkında bilgi edinmek için list() yöntemiyle ilgili dokümanları inceleyin.

Aşağıdaki kod örneği, etkinlik türüne ve hedef kaynağa göre filtrelenmiş bir Subscription nesne dizisi döndürür. Kullanıcı olarak kimlik doğrulandığında yöntem yalnızca kullanıcının uygulamaya oluşturma yetkisi verdiği aboneliklerin listesini döndürür.

Belirli bir 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ı 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 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ındaki aboneliklere göre filtrelemek için //chat.googleapis.com/spaces/SPACE_ID ifadesini kullanın. Burada 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('credentials.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: Abonelikteki en az bir etkinlik türünü destekleyen bir OAuth kapsamı. Örneğin, aboneliğiniz güncellenmiş bir Chat alanı gibi etkinlikler alıyorsa https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: CloudEvents spesifikasyonuna göre biçimlendirilmiş bir etkinlik türü. Örneğin, google.workspace.chat.message.v1.created 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ındaki aboneliklere göre filtrelemek için //chat.googleapis.com/spaces/SPACE_ID ifadesini kullanın. Burada spaces/SPACE_ID, Space kaynağının name alanını temsil eder.
  2. Çalışma dizininizde OAuth istemci kimliği kimlik bilgilerinizi sakladığınızdan ve dosyayı credentials.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 bilgileri oluşturma başlıklı makaleye bakın.

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

    python3 list_subscriptions.py

Google Workspace Events API, sorgunuzun filtresiyle eşleşen sayfalandırılmış bir Subscription nesne dizisi döndürür.