Menelusuri dan mengelola ruang Google Chat untuk organisasi Google Workspace Anda

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 dalam query 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 metode members.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 metode members.list() untuk mengambil daftar ruang yang tidak memiliki pengelola.

Prasyarat

Python

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 ke true.

Bagian ini menunjukkan contoh berikut untuk memanggil Chat API sebagai administrator:

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 atau chat.admin.spaces.readonly.
  • Tentukan useAdminAccess=true
  • Tentukan parameter query penelusuran untuk memfilter hasil:
    • customer = "customers/my_customer" - wajib dan satu-satunya nilai yang didukung adalah customers/my_customer
    • spaceType = "SPACE" - wajib dan satu-satunya nilai yang didukung adalah SPACE
    • 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

  1. Di direktori kerja Anda, buat file bernama search_spaces_for_hello_world.py.
  2. 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)
    
  3. 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 atau chat.admin.spaces.readonly.
    • Panggil metode search() pada resource Spaces.
    • 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 adalah customers/my_customer
      • spaceType = "SPACE" - wajib dan satu-satunya nilai yang didukung adalah SPACE
      • lastActiveTime - untuk memfilter permintaan Anda agar hanya menampilkan ruang yang tidak aktif, tentukan lastActiveTime
  • 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

Kode berikut menunjukkan contoh cara menelusuri ruang yang tidak aktif dan menghapusnya menggunakan hak istimewa administrator:

Python

  1. Di direktori kerja Anda, buat file bernama find_and_delete_inactive_spaces.py.

  2. 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()
    
  3. 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".

  4. Di direktori kerja, build dan jalankan contoh:

    python3 find_and_delete_inactive_spaces.py