Panduan ini menjelaskan cara administrator Google Workspace menggunakan
metode search()
pada
resource Space
dari
Google Chat API untuk mengelola ruang bernama di seluruh organisasi dan melakukan
tugas administratif.
Sebagai administrator Google Workspace, Anda hanya dapat menggunakan Chat API
untuk mengelola ruang bernama, yang ditentukan sebagai
SpaceType
dari
SPACE
. Ruang bernama adalah tempat persisten tempat orang mengirim pesan,
berbagi file, dan berkolaborasi. Anda tidak dapat menggunakan Chat API untuk mengelola pesan langsung (DM) atau chat grup.
Resource Space
mewakili tempat orang dan aplikasi Chat dapat mengirim pesan, berbagi file, dan berkolaborasi. Ada beberapa jenis ruang:
- Pesan langsung (DM) adalah percakapan antara dua pengguna atau pengguna dan aplikasi Chat.
- Chat grup adalah percakapan antara tiga pengguna atau lebih dan aplikasi Chat.
- Ruang bernama adalah tempat persisten tempat orang mengirim pesan, berbagi file, dan berkolaborasi.
Sebagai administrator Google Workspace, Anda dapat menggunakan Chat API untuk menelusuri dan mengelola ruang bernama di organisasi dengan cara berikut:
- Mengaudit ruang di organisasi. Dengan menggunakan metode
search()
, Anda dapat mengambil daftar semua ruang dalam organisasi dengan informasi mendetail tentang setelan dan metadata setiap ruang seperti tanggal pembuatan, tanggal aktivitas terakhir, jumlah anggota, status setelan histori, dan kemampuan untuk mengundang tamu eksternal. - Menemukan dan menghapus ruang yang tidak aktif. Dengan menggunakan
metode
search()
, Anda dapat menemukan ruang yang belum digunakan sejak tanggal dan waktu yang ditentukan, lalu menghapusnya. Untuk detail lebih lanjut dan kode contoh, lihat Menemukan dan menghapus ruang yang tidak aktif. - Mengekspor daftar ruang berdasarkan kriteria penelusuran. Dengan menggunakan
metode
search()
, Anda dapat mengambil daftar ruang yang memenuhi kriteria yang ditentukan dalamquery
dan mengekspor hasilnya ke file CSV untuk analisis. - Menemukan dan menghubungi pengelola ruang. Dengan menggunakan metode
search()
, Anda dapat mengambil daftar semua ruang dalam organisasi, lalu menggunakan metodemembers.list()
untuk mengambil daftar semua anggota ruang yang merupakan pengelola. - Menemukan ruang tanpa pengelola yang ditetapkan. Dengan menggunakan metode
search()
, Anda dapat mengambil daftar semua ruang dalam organisasi, lalu menggunakan metodemembers.list()
untuk mengambil daftar ruang yang tidak memiliki pengelola.
Prasyarat
Python
- Akun Google Workspace Business atau Enterprise dengan akses ke Google Chat.
- Siapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasikan layar izin OAuth.
- Aktifkan dan konfigurasikan Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Instal Library Klien Google API Python.
-
Buat kredensial client ID OAuth untuk aplikasi desktop. Untuk menjalankan contoh dalam panduan ini, simpan kredensial sebagai file JSON bernama
client_secrets.json
ke direktori lokal Anda.
- Pilih cakupan otorisasi yang mendukung autentikasi pengguna.
- Anda harus memiliki hak istimewa administrator Mengelola percakapan Chat dan Ruang untuk organisasi Google Workspace Anda.
Memanggil Google Chat API sebagai administrator
Untuk mengautentikasi sebagai pengguna dengan hak istimewa administrator, Anda harus meneruskan hal berikut dalam permintaan Anda:
- Tentukan cakupan otorisasi yang mendukung penggunaan autentikasi pengguna dengan hak istimewa administrator.
- Tetapkan kolom
useAdminAccess
ketrue
.
Bagian ini menunjukkan contoh berikut untuk memanggil Chat API sebagai administrator:
- Telusuri ruang dengan memanggil metode
search()
. - Temukan dan hapus ruang yang tidak aktif di organisasi Anda dengan memanggil metode
search()
untuk menampilkan daftar ruang yang telah tidak aktif, lalu memanggil metodedelete()
untuk menghapusnya.
Menelusuri ruang di seluruh organisasi
Contoh ini menjelaskan cara administrator Google Workspace dapat menggunakan
metode search()
pada resource Space
Chat API untuk menelusuri
ruang di seluruh organisasi berdasarkan kriteria yang ditentukan.
Untuk memanggil metode search()
dengan
autentikasi pengguna dan
hak istimewa administrator,
Anda harus menentukan hal berikut dalam permintaan:
- Tentukan cakupan otorisasi
chat.admin.spaces
atauchat.admin.spaces.readonly
. - Tentukan
useAdminAccess=true
- Tentukan parameter
query
penelusuran untuk memfilter hasil:customer = "customers/my_customer"
- wajib dan satu-satunya nilai yang didukung adalahcustomers/my_customer
spaceType = "SPACE"
- wajib dan satu-satunya nilai yang didukung adalahSPACE
- Secara opsional, satu atau beberapa kueri tambahan untuk memfilter penelusuran ruang Anda lebih lanjut, seperti kata kunci dalam nama tampilan (
displayName
), tanggal pembuatan (createTime
), atau berdasarkan aktivitas ruang (lastActiveTime
).
Kode berikut menunjukkan contoh cara menggunakan hak istimewa administrator untuk menelusuri ruang dengan nama tampilan yang berisi "Halo" dan "Dunia", dalam kombinasi apa pun:
Python
- Di direktori kerja Anda, buat file bernama
search_spaces_for_hello_world.py
. Sertakan kode berikut di
search_spaces_for_hello_world.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', ] def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer"' 'AND spaceType = "SPACE"' 'AND displayName:"Hello World"' ) pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No spaces found named Hello World.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' spaces found:') # Prints the list of spaces. print(spaces)
Di direktori kerja, build dan jalankan contoh:
python3 search_spaces_for_hello_world.py
Menemukan dan menghapus ruang yang tidak aktif
Contoh ini menjelaskan cara administrator Google Workspace dapat menggunakan
metode search()
pada resource Space
Chat API untuk menemukan
ruang yang tidak aktif, lalu menghapusnya menggunakan metode delete()
dengan
parameter useAdminAccess
.
Ruang Google Chat yang tidak aktif—yang tidak lagi digunakan secara aktif—dapat
menghabiskan ruang penyimpanan yang berharga dan membuat antarmuka pengguna berantakan. Dengan menggunakan
metode search()
, administrator dapat menemukan ruang yang belum digunakan
sejak tanggal dan waktu yang ditentukan, seperti dua bulan lalu. Setelah daftar ruang dihitung, administrator dapat mengambil tindakan terhadapnya, seperti memperbarui atau menghapusnya.
Untuk menelusuri daftar ruang yang tidak aktif, lalu menghapusnya dengan autentikasi pengguna dan hak istimewa administrator, teruskan hal berikut dalam permintaan Anda:
- Untuk menelusuri ruang yang tidak aktif, tentukan hal berikut:
- Tentukan cakupan otorisasi
chat.admin.spaces
atauchat.admin.spaces.readonly
. - Panggil metode
search()
pada resourceSpaces
. - Tetapkan
INACTIVE_SPACE_DEADLINE
ke tanggal dan waktu aktivitas terakhir yang menentukan ruang yang akan ditampilkan. - Tentukan
useAdminAccess=true
- Tentukan parameter
query
penelusuran untuk memfilter hasil:customer = "customers/my_customer"
- wajib dan satu-satunya nilai yang didukung adalahcustomers/my_customer
spaceType = "SPACE"
- wajib dan satu-satunya nilai yang didukung adalahSPACE
lastActiveTime
- untuk memfilter permintaan Anda agar hanya menampilkan ruang yang tidak aktif, tentukanlastActiveTime
- Tentukan cakupan otorisasi
- Untuk menghapus ruang yang tidak aktif dari hasil penelusuran, tentukan hal berikut:
- Tentukan cakupan otorisasi
chat.admin.delete
. - Panggil metode
delete()
pada resourceSpaces
. - Tentukan
useAdminAccess=true
- Tentukan cakupan otorisasi
Kode berikut menunjukkan contoh cara menelusuri ruang yang tidak aktif dan menghapusnya menggunakan hak istimewa administrator:
Python
Di direktori kerja Anda, buat file bernama
find_and_delete_inactive_spaces.py
.Sertakan kode berikut di
find_and_delete_inactive_spaces.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', 'https://www.googleapis.com/auth/chat.admin.delete', ] # Any spaces that have not been active since this time will be deleted. INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"' def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all inactive spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer" AND spaceType = "SPACE" AND' ' lastActiveTime < ' ) + INACTIVE_SPACE_DEADLINE, pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No inactive spaces found.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' inactive spaces found:') # Prints the list of inactive spaces. print(spaces) # Delete all inactive spaces. for space in spaces: ( chat.spaces() .delete( useAdminAccess=True, name=space['name'], ) .execute() ) print( 'Deleted space: ' + space['displayName'] + ', Resource Name: ' + space['name'] ) if __name__ == '__main__': main()
Dalam kode, ganti
INACTIVE_DATE
dengan tanggal dan waktu dalam bentuk YYYY-MM-DDTHH:MM:SS+HH:MM. Misalnya, "2024-06-01T00:00:00+00:00".Di direktori kerja, build dan jalankan contoh:
python3 find_and_delete_inactive_spaces.py
Topik terkait
- Menghapus ruang
- Mencantumkan anggota di ruang
- Mengelola ruang Chat sebagai administrator Google Workspace
- Metode
spaces.search()