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
- 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 secara otomatis oleh Apps Script.
- Untuk cakupan apa pun yang ditambahkan untuk mengonfigurasi layar izin OAuth, Anda juga harus menambahkan cakupan tersebut ke file
appsscript.json
di project Apps Script Anda. Contoh: - Aktifkan
layanan lanjutan
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
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 diberi otorisasi oleh pengguna untuk dibuat oleh aplikasi.
Untuk mencantumkan langganan untuk jenis peristiwa dan resource target yang ditentukan:
Apps Script
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 lengkap. Misalnya, untuk memfilter menurut langganan untuk 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 untuk 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 mengautentikasi dengan Google Workspace dan mendapatkan kredensial pengguna. Untuk mengetahui petunjuknya, lihat Membuat kredensial client ID OAuth.Untuk menampilkan daftar langganan, jalankan perintah berikut di terminal Anda:
python3 list_subscriptions.py
Google Workspace Events API menampilkan array bernomor dari objek Subscription
yang cocok dengan filter untuk kueri Anda.