Mencantumkan langganan Google Workspace

Halaman ini menjelaskan cara mencantumkan langganan Google Workspace menggunakan metode subscriptions.list().

Saat Anda memanggil metode ini dengan autentikasi pengguna, metode ini akan menampilkan daftar langganan yang diotorisasi oleh pengguna. Saat Anda menggunakan autentikasi aplikasi, metode ini dapat menampilkan daftar yang berisi langganan apa pun untuk aplikasi.

Prasyarat

Apps Script

  • Project Apps Script:
    • Gunakan project Google Cloud Anda, bukan project default yang dibuat secara otomatis oleh Apps Script.
    • Untuk cakupan yang Anda tambahkan guna mengonfigurasi layar izin OAuth, Anda juga harus menambahkan cakupan ke file appsscript.json di project Apps Script. Contoh:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Aktifkan layanan lanjutan Google Workspace Events.

Python

  • Python 3.6 atau yang lebih tinggi
  • Alat pengelolaan paket pip
  • Library klien Google terbaru untuk Python. Untuk menginstal atau mengupdatenya, jalankan perintah berikut di antarmuka command line:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Langganan Google Workspace. Untuk membuatnya, lihat Membuat langganan.

  • Memerlukan autentikasi:

    • Untuk autentikasi pengguna, memerlukan cakupan yang mendukung setidaknya salah satu jenis peristiwa untuk langganan. Untuk mengidentifikasi cakupan, lihat Cakupan menurut jenis peristiwa.
    • Untuk autentikasi aplikasi, memerlukan cakupan chat.bot (khusus aplikasi Google Chat).

Mencantumkan langganan yang diotorisasi oleh pengguna

Untuk mencantumkan langganan, Anda harus memfilter menurut minimal satu jenis peristiwa. Anda juga dapat memfilter kueri menurut satu atau beberapa resource target. Untuk mempelajari filter kueri yang didukung, lihat dokumentasi metode list().

Contoh kode berikut menampilkan array objek Subscription yang difilter menurut jenis peristiwa dan resource target. Saat diautentikasi sebagai pengguna, metode ini hanya menampilkan daftar langganan yang diotorisasi oleh pengguna untuk dibuat oleh aplikasi.

Untuk mencantumkan langganan untuk jenis peristiwa dan resource target yang ditentukan:

Apps Script

  1. Di project Apps Script, buat file skrip baru bernama listSubscriptions dan tambahkan kode berikut:

    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);
    }
    

    Ganti kode berikut:

    • EVENT_TYPE: Jenis peristiwa yang diformat sesuai dengan spesifikasi CloudEvents. Misalnya, untuk memfilter langganan yang menerima peristiwa tentang langganan baru ke ruang Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: Resource target, yang diformat sebagai nama resource lengkapnya. Misalnya, untuk memfilter menurut langganan untuk ruang Google Chat, gunakan //chat.googleapis.com/spaces/SPACE_ID dengan spaces/SPACE_ID mewakili kolom name untuk resource Space.
  2. Untuk mencantumkan langganan, jalankan fungsi listSubscriptions di project Apps Script Anda.

Python

  1. Di direktori kerja Anda, buat file bernama list_subscriptions.py dan tambahkan kode berikut:

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

    Ganti kode berikut:

    • SCOPE: Cakupan OAuth yang mendukung setidaknya satu jenis peristiwa dari langganan. Misalnya, jika langganan Anda menerima peristiwa ruang Chat yang diperbarui, https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: Jenis peristiwa yang diformat sesuai dengan spesifikasi CloudEvents. Misalnya, untuk memfilter langganan yang menerima peristiwa tentang langganan baru ke ruang Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: Resource target, yang diformat sebagai nama resource lengkapnya. Misalnya, untuk memfilter menurut langganan untuk ruang Google Chat, gunakan //chat.googleapis.com/spaces/SPACE_ID dengan spaces/SPACE_ID mewakili kolom name untuk resource Space.
  2. Di direktori kerja, pastikan Anda telah menyimpan kredensial client ID OAuth dan memberi nama file client_secrets.json. Contoh kode menggunakan file JSON ini untuk mengautentikasi dengan Google Workspace dan mendapatkan kredensial pengguna. Untuk mengetahui petunjuknya, lihat Membuat kredensial client ID OAuth.

  3. Untuk menampilkan daftar langganan, jalankan perintah berikut di terminal Anda:

    python3 list_subscriptions.py

Google Workspace Events API menampilkan array objek Subscription yang di-pagination yang cocok dengan filter untuk kueri Anda.