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 tersebut akan menampilkan daftar langganan yang diizinkan 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 otomatis oleh Apps Script.
    • Untuk setiap cakupan yang ditambahkan untuk mengonfigurasi layar izin OAuth, Anda juga harus menambahkan cakupan tersebut ke file appsscript.json di project Apps Script Anda. Contoh:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Aktifkan layanan lanjutan Google Workspace Events.

Python

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

  • Mewajibkan autentikasi:

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

Mencantumkan langganan yang diizinkan oleh pengguna

Untuk mencantumkan langganan, Anda harus memfilter setidaknya menurut satu jenis peristiwa. Anda juga dapat memfilter kueri berdasarkan 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. Ketika diautentikasi sebagai pengguna, metode hanya menampilkan daftar langganan yang diizinkan oleh pengguna untuk dibuat oleh aplikasi.

Untuk mencantumkan langganan untuk jenis peristiwa dan resource target tertentu:

Apps Script

  1. Pada project Apps Script Anda, 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 keanggotaan 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 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, 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 keanggotaan 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 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 melakukan autentikasi dengan Google Workspace dan mendapatkan kredensial pengguna. Untuk mengetahui petunjuknya, lihat Membuat kredensial client ID OAuth.

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

    python3 list_subscriptions.py
    

Google Workspace Events API menampilkan array objek Subscription dengan penomoran halaman yang cocok dengan filter untuk kueri Anda.