Halaman ini menjelaskan cara menggunakan Google Workspace Events API untuk membuat langganan ke resource Google Workspace. Langganan Google Workspace memungkinkan aplikasi Anda menerima informasi tentang peristiwa Google Workspace, yang mewakili perubahan pada resource Google Workspace. Untuk mempelajari resource dan jenis peristiwa yang didukung Google Workspace Events API, lihat Ringkasan Google Workspace Events API.
Halaman ini mencakup langkah-langkah berikut untuk membuat langganan Google Workspace:
- Menyiapkan lingkungan Anda.
- Membuat dan berlangganan topik Google Cloud Pub/Sub. Gunakan dokumen ini sebagai endpoint untuk menerima peristiwa Google Workspace.
- Panggil metode
createGoogle Workspace Events API pada resourceSubscription. - Uji langganan Google Workspace Anda untuk memverifikasi bahwa topik Pub/Sub Anda menerima peristiwa yang Anda langgan.
- Secara opsional, konfigurasikan cara mengirim peristiwa ke endpoint untuk aplikasi Anda, sehingga aplikasi Anda dapat memproses peristiwa dan, jika perlu, mengambil tindakan.
Prasyarat
Apps Script
- Untuk menggunakan perintah Google Cloud CLI dalam panduan ini:
- Instal Google Cloud CLI.
- Untuk
melakukan inisialisasi
gcloudCLI, jalankan kode berikut:
gcloud init
- Project Apps Script:
- Gunakan project Google Cloud Anda, bukan project default yang dibuat secara otomatis oleh Apps Script.
- Untuk semua cakupan yang Anda tambahkan guna mengonfigurasi layar izin OAuth, Anda juga harus menambahkan
cakupan ke file
appsscript.jsondi project Apps Script Anda. Misalnya, jika Anda menentukan cakupanchat.messages, tambahkan kode berikut: - Aktifkan
layanan lanjutan
Google Workspace Events.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
- Project Google Cloud dengan penagihan diaktifkan. Untuk langganan Chat, Anda juga harus mengaktifkan Chat API di project Cloud dan mengonfigurasi kolom App name, Avatar URL, dan Description. Untuk mengetahui detailnya, lihat Membangun aplikasi Google Chat.
-
Memerlukan autentikasi dan cakupan otorisasi yang sesuai untuk setiap jenis peristiwa dalam langganan:
- Biasanya memerlukan autentikasi pengguna dengan layar izin OAuth yang dikonfigurasi untuk aplikasi. Saat mengonfigurasi layar izin, Anda harus menentukan cakupan untuk mendukung setiap jenis peristiwa untuk langganan. Untuk mengonfigurasi layar izin dan mengidentifikasi cakupan yang diperlukan, lihat Memilih cakupan.
- Untuk berlangganan peristiwa Chat sebagai aplikasi Chat, diperlukan autentikasi aplikasi dengan persetujuan administrator satu kali.
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
- Untuk menggunakan perintah Google Cloud CLI dalam panduan ini:
- Instal Google Cloud CLI.
- Untuk
melakukan inisialisasi
gcloudCLI, jalankan kode berikut:
gcloud init
- Project Google Cloud dengan penagihan diaktifkan. Untuk langganan Chat, Anda juga harus mengaktifkan Chat API di project Cloud dan mengonfigurasi kolom App name, Avatar URL, dan Description. Untuk mengetahui detailnya, lihat Membangun aplikasi Google Chat.
-
Memerlukan autentikasi dan cakupan otorisasi yang sesuai untuk setiap jenis peristiwa dalam langganan:
- Biasanya memerlukan autentikasi pengguna dengan layar izin OAuth yang dikonfigurasi untuk aplikasi. Saat mengonfigurasi layar izin, Anda harus menentukan cakupan untuk mendukung setiap jenis peristiwa untuk langganan. Untuk mengonfigurasi layar izin dan mengidentifikasi cakupan yang diperlukan, lihat Memilih cakupan.
- Untuk berlangganan peristiwa Chat sebagai aplikasi Chat, diperlukan autentikasi aplikasi dengan persetujuan administrator satu kali.
Menyiapkan lingkungan Anda
Bagian berikut menjelaskan cara menyiapkan lingkungan Anda sebelum membuat langganan Google Workspace.
Mengaktifkan Google Workspace Events API dan Google Cloud Pub/Sub API
Sebelum menggunakan Google API, Anda harus mengaktifkannya di project Google Cloud. Anda dapat mengaktifkan satu atau beberapa API dalam satu project Google Cloud.Konsol Google Cloud
Di konsol Google Cloud, buka project Google Cloud untuk aplikasi Anda, lalu aktifkan Google Workspace Events API dan Pub/Sub API:
gcloud
Di direktori kerja Anda, login ke Akun Google Anda:
gcloud auth loginTetapkan project Anda ke project Cloud untuk aplikasi Anda:
gcloud config set project PROJECT_IDGanti
PROJECT_IDdengan project ID untuk project Cloud aplikasi Anda.Aktifkan Google Workspace Events API dan Google Cloud Pub/Sub API:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
Membuat kredensial client ID OAuth
Pilih jenis aplikasi Anda untuk mendapatkan petunjuk spesifik tentang cara membuat client ID OAuth:
Aplikasi web
- Di Konsol Google Cloud, buka Menu > Google Auth platform > Clients.
- Klik Create Client.
- Klik Application type > aplikasi web.
- Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Tambahkan URI yang diizinkan terkait dengan aplikasi Anda:
- Aplikasi sisi klien (JavaScript)–Di bagian Asal JavaScript resmi, klik Tambahkan URI. Kemudian, masukkan URI yang akan digunakan untuk permintaan browser. Tindakan ini mengidentifikasi domain tempat aplikasi Anda dapat mengirim permintaan API ke server OAuth 2.0.
- Aplikasi sisi server (Java, Python, dan lainnya)–Di bagian Authorized redirect URIs, klik Add URI. Kemudian, masukkan URI endpoint yang dapat menerima respons dari server OAuth 2.0.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian OAuth 2.0 Client IDs.
Perhatikan bahwa rahasia klien tidak digunakan untuk aplikasi Web.
Android
- Di Konsol Google Cloud, buka Menu > Google Auth platform > Clients.
- Klik Create Client.
- Klik Application type > Android.
- Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di kolom Package name, masukkan nama paket dari file
AndroidManifest.xmlAnda. - Di kolom SHA-1 certificate fingerprint, masukkan sidik jari sertifikat SHA-1 yang dihasilkan.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian "OAuth 2.0 Client IDs".
iOS
- Di Konsol Google Cloud, buka Menu > Google Auth platform > Clients.
- Klik Create Client.
- Klik Application type > iOS.
- Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di kolom Bundle ID, masukkan ID paket seperti yang tercantum dalam file
Info.plistaplikasi. - Opsional: Jika aplikasi Anda muncul di Apple App Store, masukkan ID App Store.
- Opsional: Di kolom ID Tim, masukkan string 10 karakter unik yang dibuat oleh Apple dan ditetapkan ke tim Anda.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian "OAuth 2.0 Client IDs".
Aplikasi Chrome
- Di Konsol Google Cloud, buka Menu > Google Auth platform > Clients.
- Klik Create Client.
- Klik Jenis aplikasi > Ekstensi Chrome.
- Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di kolom ID Item, masukkan string ID 32 karakter unik aplikasi Anda. Anda dapat menemukan nilai ID ini di URL Chrome Web Store aplikasi Anda dan di Dasbor Developer Chrome Web Store.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian "OAuth 2.0 Client IDs".
Aplikasi desktop
- Di Konsol Google Cloud, buka Menu > Google Auth platform > Clients.
- Klik Create Client.
- Klik Application type > aplikasi desktop.
- Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian "OAuth 2.0 Client IDs".
TV & perangkat Input Terbatas
- Di Konsol Google Cloud, buka Menu > Google Auth platform > Clients.
- Klik Create Client.
- Klik Application type > TVs and Limited Input devices.
- Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian "OAuth 2.0 Client IDs".
Universal Windows Platform (UWP)
- Di Konsol API Google, buka Menu > > Klien.
- Klik Create Client.
- Klik Application type > Universal Windows Platform (UWP).
- Di kolom "Name", ketik nama untuk kredensial. Nama ini hanya ditampilkan di Konsol API Google.
- Di kolom "ID Toko", masukkan nilai ID Microsoft Store unik yang terdiri dari 12 karakter untuk aplikasi Anda. Anda dapat menemukan ID ini di URL Microsoft Store aplikasi Anda dan di Partner Center.
- Opsional: Jika aplikasi Anda adalah agen AI yang melakukan tindakan atas nama pengguna, pilih Gunakan klien ini untuk agen yang didukung AI. Jika aplikasi Anda mendukung alur kerja agen AI dan fitur pengguna standar, buat klien OAuth terpisah untuk masing-masing fitur. Anda tidak dapat mengubah setelan ini setelah membuat klien.
- Klik Buat.
Kredensial yang baru dibuat akan muncul di bagian "OAuth 2.0 Client IDs".
Mendownload file JSON rahasia klien
File rahasia klien adalah representasi JSON dari kredensial client ID OAuth yang dapat dirujuk oleh aplikasi Anda saat memberikan kredensial.
Di Konsol API Google, buka Menu > APIs & Services > Credentials.
Di bagian OAuth 2.0 Client IDs, klik client ID yang Anda buat.
Klik Download JSON.
Simpan file sebagai
credentials.json.
Membuat dan berlangganan ke topik Pub/Sub
Di bagian ini, Anda akan membuat topik Pub/Sub dan langganan ke topik tersebut. Topik Pub/Sub Anda berfungsi sebagai endpoint notifikasi tempat langganan Google Workspace Anda menerima peristiwa.
Untuk mempelajari lebih lanjut cara membuat dan mengelola topik Pub/Sub, lihat dokumentasi Pub/Sub.
Untuk membuat dan berlangganan topik Pub/Sub:
Konsol API Google
Di Konsol API Google, buka halaman Pub/Sub:
Pastikan project Cloud untuk aplikasi Anda dipilih.
Klik Create topic dan lakukan hal berikut:
- Masukkan nama untuk topik Anda, seperti
workspace-events-topic. - Biarkan Add a default subscription dipilih. Pub/Sub memberi nama langganan default ini mirip dengan nama topik Anda, seperti
workspace-events-topic-sub. - Opsional: Perbarui atau konfigurasikan properti tambahan untuk topik Anda.
- Masukkan nama untuk topik Anda, seperti
Klik Buat. Nama topik lengkap Anda diformat sebagai
projects/PROJECT_ID/topics/TOPIC_ID. Gunakan nama lengkap ini di langkah berikutnya.Berikan akses untuk memublikasikan pesan Pub/Sub ke topik Anda:
- Di halaman topik, buka panel samping dan buka tab Permissions.
- Klik Add Principal.
- In the Add principals field, add the service account for the
Google Workspace application that delivers events to your
subscription:
- Untuk acara Chat,
chat-api-push@system.gserviceaccount.com. - Untuk peristiwa Drive,
drive-api-event-push@system.gserviceaccount.com. - Untuk acara Meet,
meet-api-event-push@system.gserviceaccount.com.
- Untuk acara Chat,
- Di menu Assign roles, pilih
Pub/Sub Publisher. - Klik Simpan. Diperlukan waktu beberapa menit untuk memperbarui izin topik Anda.
gcloud
Di project Cloud Anda, buat topik dengan menjalankan perintah berikut:
gcloud pubsub topics create TOPIC_IDGanti
TOPIC_IDdengan ID unik untuk topik Anda, sepertiworkspace-events-topic.Output akan menampilkan nama topik lengkap, yang diformat sebagai
projects/PROJECT_ID/topics/TOPIC_ID. Catat nama tersebut, dan pastikan nilai untuk PROJECT_ID adalah ID project Cloud untuk aplikasi Anda. Gunakan nama topik pada langkah berikut, dan untuk membuat langganan Google Workspace nanti.Berikan akses untuk memublikasikan pesan ke topik Anda:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'Ganti kode berikut:
TOPIC_NAME: Nama topik lengkap, yang merupakan output dari langkah sebelumnya. Diformat sebagaiprojects/PROJECT_ID/topics/TOPIC_ID.GOOGLE_WORKSPACE_APPLICATION: Aplikasi Google Workspace yang harus mengirimkan peristiwa ke langganan Anda:- Untuk menerima peristiwa dari Chat, gunakan salah satu akun layanan berikut:
- Untuk aplikasi Chat (yang dibuat sebagai add-on Google Workspace yang memperluas Chat), gunakan email akun layanan di halaman konfigurasi Chat API. Untuk mempelajari lebih lanjut, lihat Membangun aplikasi Google Chat yang menggunakan Pub/Sub.
- Untuk aplikasi Chat yang bukan add-on, gunakan
chat-api-push@system.gserviceaccount.com. Untuk mempelajari lebih lanjut, lihat Membangun aplikasi Google Chat yang menggunakan Pub/Sub.
- Untuk menerima peristiwa dari Drive, gunakan
drive-api-event-push@system.gserviceaccount.com. - Untuk menerima acara dari Meet, gunakan
meet-api-event-push@system.gserviceaccount.com.
- Untuk menerima peristiwa dari Chat, gunakan salah satu akun layanan berikut:
Mungkin perlu waktu beberapa menit untuk memperbarui izin topik Anda.
Buat langganan Pub/Sub untuk topik:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMEGanti kode berikut:
SUBSCRIPTION_NAME: Nama untuk langganan Anda, sepertiworkspace-events-subscription.TOPIC_NAME: Nama topik yang Anda buat pada langkah sebelumnya.
Berlangganan ke resource Google Workspace
Di bagian ini, Anda akan berlangganan ke resource Google Workspace yang ingin Anda pantau peristiwanya.
Memilih dan mengidentifikasi resource target
Dalam langganan Google Workspace, resource target adalah
resource Google Workspace yang Anda pantau untuk peristiwa. Resource target
direpresentasikan dalam kolom
targetResource
langganan, yang diformat menggunakan nama resource lengkap. Misalnya, untuk langganan
yang memantau ruang Chat (spaces/AAAABBBBBBB), nilai
targetResource adalah //chat.googleapis.com/spaces/AAAABBBBBBB.
Mengidentifikasi resource target untuk Chat
| Resource target | Format | Batasan |
|---|---|---|
| Spasi |
dengan SPACE adalah ID dalam
nama resource resource |
Pengguna Chat atau aplikasi Chat yang mengizinkan langganan harus menjadi anggota ruang melalui Akun Google atau Google Workspace mereka. Mendukung: |
| Semua ruang untuk pengguna |
|
Langganan hanya menerima acara untuk ruang tempat pengguna menjadi anggota melalui Akun Google atau Google Workspace mereka. Hanya mendukung autentikasi pengguna. |
| Pengguna |
dengan USER adalah ID dalam
nama resource resource |
Langganan hanya menerima peristiwa tentang pengguna yang mengizinkan langganan. Pengguna tidak dapat mengizinkan langganan atas nama pengguna lain. Hanya mendukung autentikasi pengguna. |
| Pelanggan (Pratinjau Developer ) |
dengan CUSTOMER sebagai ID pelanggan. Anda juga dapat menggunakan alias |
Langganan menerima peristiwa untuk semua ruang dan pengguna yang dikelola oleh domain pelanggan. Hanya mendukung autentikasi aplikasi dengan persetujuan administrator. |
Mengidentifikasi resource target untuk Drive
| Resource target | Format | Batasan (jika ada) |
|---|---|---|
| File |
//drive.googleapis.com/files/FILE
dengan FILE adalah ID dalam
nama resource
resource |
Pengguna yang mengizinkan langganan harus memiliki izin pada file dalam langganan yang terkait dengan peristiwa berlangganan. |
| Drive bersama |
//drive.googleapis.com/drives/DRIVE
dengan DRIVE adalah ID dalam
nama resource
resource |
Langganan hanya menerima peristiwa untuk item di drive bersama tempat pengguna menjadi anggota melalui Akun Google Workspace atau Akun Google mereka. |
Mengidentifikasi resource target untuk Meet
| Resource target | Format | Batasan (jika ada) |
|---|---|---|
| Ruang rapat | //meet.googleapis.com/spaces/SPACE
dengan SPACE sebagai ID dalam
nama resource dari resource |
|
| Pengguna | //cloudidentity.googleapis.com/users/USER
dengan USER adalah ID di kolom
|
Langganan menerima peristiwa tentang semua ruang rapat tempat pengguna adalah pemilik ruang rapat. Biasanya, pemilik ruang rapat juga merupakan penyelenggara acara Google Kalender yang terkait dengan ruang rapat. |
Membuat langganan Google Workspace
Untuk membuat langganan, gunakan metode subscriptions.create Google Workspace Events API untuk membuat resource Subscription.
Tentukan kolom berikut:
targetResource: Google Workspace yang Anda identifikasi di bagian sebelumnya, yang diformat menggunakan nama resource lengkapnya.eventTypes: Array yang berisi satu atau beberapa jenis peristiwa yang ingin Anda terima tentang resource. Misalnya, jika aplikasi Anda hanya perlu mengetahui pesan baru yang diposting ke ruang Chat, aplikasi Anda cukup berlangganan ke peristiwa tentang pesan yang dibuat.notificationEndpoint: Endpoint notifikasi tempat langganan Google Workspace Anda mengirimkan peristiwa. Gunakan topik Pub/Sub yang Anda buat di bagian sebelumnya.payloadOptions: Opsi untuk menentukan jumlah data resource yang akan disertakan dalam payload peristiwa. Konfigurasi ini memengaruhi waktu habis masa berlaku langganan Anda. Untuk mempelajari lebih lanjut, lihat Data peristiwa.
Untuk membuat langganan Google Workspace:
Apps Script
Dalam project Apps Script, buat file skrip baru bernama
createSubscriptiondan tambahkan kode berikut:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }Ganti kode berikut:
TARGET_RESOURCE: Resource Google Workspace yang Anda langgani, yang diformat sebagai nama resource lengkapnya. Misalnya, untuk berlangganan ke ruang Chat dengan ID ruangAAAABBBB, gunakan//chat.googleapis.com/spaces/AAAABBBB.EVENT_TYPES: Satu atau beberapa jenis peristiwa yang ingin Anda berlangganan di resource target. Format sebagai array string seperti'google.workspace.chat.message.v1.created'.TOPIC_NAME: Nama lengkap topik Pub/Sub yang Anda buat di project Cloud. Diformat sebagaiprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: Boolean yang menentukan apakah langganan menyertakan data resource dalam payload:True: Mencakup semua data resource. Untuk membatasi kolom yang disertakan, tambahkan kolomfieldMaskdan tentukan setidaknya satu kolom untuk resource yang diubah. Hanya langganan ke resource Chat yang mendukung penyertaan data resource.False: Mengecualikan data resource.
Untuk membuat langganan Google Workspace, jalankan fungsi
createSubscriptiondi project Apps Script Anda.
Python
Di direktori kerja Anda, buat file bernama
create_subscription.pydan tambahkan kode berikut:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)Ganti kode berikut:
SCOPES: Satu atau beberapa cakupan OAuth yang mendukung setiap jenis peristiwa untuk langganan. Diformat sebagai array string. Untuk mencantumkan beberapa cakupan, pisahkan dengan koma. Misalnya,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.TARGET_RESOURCE: Resource Google Workspace yang Anda langgani, diformat sebagai nama resource lengkapnya. Misalnya, untuk berlangganan ke ruang Chat dengan ID ruangAAAABBBB, gunakan//chat.googleapis.com/spaces/AAAABBBB.EVENT_TYPES: Satu atau beberapa jenis peristiwa yang ingin Anda berlangganan di resource target. Format sebagai array string seperti'google.workspace.chat.message.v1.created'.TOPIC_NAME: Nama lengkap topik Pub/Sub yang Anda buat di project Cloud. Diformat sebagaiprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: Boolean yang menentukan apakah langganan menyertakan data resource dalam payload:True: Mencakup semua data resource. Untuk membatasi kolom yang disertakan, tambahkan kolomfieldMaskdan tentukan setidaknya satu kolom untuk resource yang diubah. Hanya langganan ke resource Chat yang mendukung penyertaan data resource.False: Mengecualikan data resource.
Untuk membuat langganan Google Workspace, jalankan perintah berikut di terminal Anda:
python3 create_subscription.py
Google Workspace Events API menampilkan operasi yang berjalan lama yang telah selesai dan berisi instance resource Subscription yang Anda buat.
Menguji langganan Google Workspace Anda
Untuk menguji apakah Anda menerima peristiwa Google Workspace, Anda dapat memicu peristiwa dan mengambil pesan ke langganan Pub/Sub.
Untuk menguji langganan Google Workspace:
Konsol API Google
Memicu satu atau beberapa jenis peristiwa di resource target langganan Google Workspace Anda. Misalnya, jika Anda telah berlangganan pesan baru di ruang Chat, posting pesan ke ruang tersebut.
Di Konsol API Google, buka halaman Pub/Sub:
Pastikan project Cloud untuk aplikasi Anda dipilih.
Di menu Pub/Sub, klik Subscriptions.
Dalam tabel, temukan langganan Pub/Sub untuk topik Anda, lalu klik nama langganan.
Klik tab Messages.
Klik Pull. Diperlukan waktu hingga beberapa menit agar peristiwa dapat menghasilkan pesan Pub/Sub.
gcloud
Memicu satu atau beberapa jenis peristiwa di resource target langganan Google Workspace Anda. Misalnya, jika Anda telah berlangganan pesan baru di ruang Chat, posting pesan di ruang tersebut.
Jalankan perintah berikut:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ackGanti kode berikut:
PUBSUB_SUBSCRIPTION_NAME: Nama lengkap langganan Pub/Sub Anda, yang diformat sebagaiprojects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID.MESSAGE_COUNT: Jumlah maksimum pesan Pub/Sub yang ingin Anda ambil.
Diperlukan waktu hingga beberapa menit agar peristiwa dapat menghasilkan pesan Pub/Sub.
Untuk setiap peristiwa Google Workspace yang Anda picu, pesan akan dikirim ke langganan Pub/Sub yang berisi peristiwa tersebut. Untuk mengetahui detailnya, lihat Menerima peristiwa sebagai pesan Google Cloud Pub/Sub.
Mengonfigurasi cara aplikasi Anda menerima peristiwa
Langganan Pub/Sub yang Anda buat berbasis pull. Setelah menguji langganan Pub/Sub, Anda dapat memperbarui jenis pengiriman untuk mengubah cara aplikasi menerima peristiwa. Misalnya, Anda dapat mengonfigurasi langganan Pub/Sub ke jenis pengiriman push, sehingga aplikasi Anda dapat menerima peristiwa langsung ke endpoint aplikasi.
Untuk mempelajari cara mengonfigurasi langganan Pub/Sub, lihat dokumentasi Pub/Sub.
Berlangganan ke peristiwa ruang Chat sebagai aplikasi Google Chat
Anda dapat berlangganan peristiwa Chat sebagai aplikasi Chat dari ruang tempat aplikasi Chat memiliki keanggotaan. Aplikasi Chat tidak dapat berlangganan peristiwa pengguna.
Menulis skrip yang memanggil Google Workspace Events API
Berikut cara membuat langganan ke peristiwa ruang Chat dengan autentikasi aplikasi dan persetujuan administrator:
- Jika perlu, Bangun aplikasi Chat.
Berlangganan ke resource Chat, tetapi:
- Alih-alih autentikasi pengguna, lakukan autentikasi sebagai aplikasi Chat dengan persetujuan administrator satu kali.
Tentukan cakupan otorisasi yang memungkinkan aplikasi Chat berlangganan ke peristiwa Chat. Cakupan otorisasi ini selalu dimulai dengan
chat.app, dan mencakup hal berikut:https://www.googleapis.com/auth/chat.app.memberships: Berlangganan ke peristiwa anggota ruang Chat.https://www.googleapis.com/auth/chat.app.memberships.readonly: Berlangganan ke peristiwa anggota ruang Chat.https://www.googleapis.com/auth/chat.app.messages.readonly: Berlangganan ke peristiwa pesan dan reaksi ruang Chat.https://www.googleapis.com/auth/chat.app.spaces: Berlangganan ke peristiwa ruang Chat.https://www.googleapis.com/auth/chat.app.spaces.readonly: Berlangganan ke peristiwa ruang Chat.
Contoh kode berikut berlangganan peristiwa pesan di ruang Chat yang ditentukan:
Python
"""Create subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# The Google Workspace resource to monitor for events.
TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1',
credentials=CREDENTIALS,
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
Ganti kode berikut:
SPACE_ID: Nama ruang, yang dapat Anda peroleh dari metodespaces.listdi Chat API, atau dari URL ruang.TOPIC_NAME: Nama lengkap topik Pub/Sub yang Anda buat di project Cloud. Diformat sebagaiprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: Boolean yang menentukan apakah langganan menyertakan data resource dalam payload:True: Mencakup semua data resource. Untuk membatasi kolom yang disertakan, tambahkan kolomfieldMaskdan tentukan setidaknya satu kolom untuk resource yang diubah. Hanya langganan ke resource Chat yang mendukung penyertaan data resource.False: Mengecualikan data resource.
Berlangganan ke semua peristiwa Chat di organisasi Google Workspace sebagai aplikasi Google Chat
Langganan pelanggan memungkinkan aplikasi Chat Anda memantau peristiwa ruang dan peristiwa pengguna di seluruh organisasi Google Workspace.
Untuk mengetahui detail tentang cara peristiwa dikirim untuk langganan pelanggan, termasuk pengiriman peristiwa di ruang yang dikelola oleh organisasi eksternal, lihat Batasan dan perilaku pengiriman langganan pelanggan.
Persyaratan dan batasan
- Autentikasi: Melakukan autentikasi sebagai aplikasi Chat dengan persetujuan administrator satu kali
- SKU: Organisasi Google Workspace harus memiliki setidaknya satu lisensi SKU Enterprise. Perhatikan bahwa persyaratan ini tidak diterapkan secara ketat selama tahap Program Pratinjau Developer, tetapi akan diterapkan pada masa mendatang (akan diumumkan secara terpisah).
- Keunikan: Aplikasi Chat hanya dapat membuat satu langganan pelanggan untuk organisasi Google Workspace tertentu. Organisasi Google Workspace dapat memiliki total hingga lima langganan pelanggan (yang dibuat oleh aplikasi Chat yang berbeda).
- Cakupan: Memerlukan satu atau beberapa cakupan berikut, bergantung pada jenis peristiwa yang ingin Anda terima:
https://www.googleapis.com/auth/chat.app.all.spaces.readonly: Untuk menerima peristiwa tentang ruang.https://www.googleapis.com/auth/chat.app.all.memberships.readonly: Untuk menerima peristiwa tentang keanggotaan.https://www.googleapis.com/auth/chat.app.all.messages.readonly: Untuk menerima peristiwa tentang pesan dan reaksi.https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly(Pratinjau Developer ): Untuk menerima peristiwa tentang status baca pengguna.
Membuat langganan pelanggan
Untuk membuat langganan pelanggan, panggil metode subscriptions.create.
Contoh kode Python berikut membuat langganan pelanggan:
Python
"""Create a customer subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
Ganti kode berikut:
CUSTOMER_ID: ID pelanggan. Anda juga dapat menggunakan aliasmy_customeruntuk organisasi Google Workspace aplikasi Chat.TOPIC_NAME: Nama lengkap topik Pub/Sub yang Anda buat di project Cloud. Diformat sebagaiprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: Boolean yang menentukan apakah langganan menyertakan data resource dalam payload:True: Mencakup semua data resource. Untuk membatasi kolom yang disertakan, tambahkan kolomfieldMaskdan tentukan setidaknya satu kolom untuk resource yang diubah. Hanya langganan ke resource Chat yang mendukung penyertaan data resource.False: Mengecualikan data resource.