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
- Langganan Google Workspace. Untuk membuatnya, lihat Membuat langganan.
Memerlukan autentikasi pengguna dengan satu atau beberapa cakupan yang mendukung semua jenis peristiwa untuk langganan.
- 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
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
denganspaces/SPACE_ID
mewakili kolomname
untuk resourceSpace
.
Untuk mencantumkan langganan, jalankan fungsi
listSubscriptions
di project Apps Script Anda.
Python
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
denganspaces/SPACE_ID
mewakili kolomname
untuk resourceSpace
.
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.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.