Mencantumkan ruang

Panduan ini menjelaskan cara menggunakan resource list pada resource Space Google Chat API untuk mencantumkan ruang. Ruang listingan akan menampilkan daftar ruang yang dipaginasi dan dapat difilter.

Resource Space merepresentasikan 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 tetap tempat orang mengirim pesan, berbagi file, dan berkolaborasi.

Mencantumkan ruang dengan autentikasi aplikasi akan mencantumkan ruang yang dapat diakses aplikasi Chat. Mencantumkan ruang dengan Autentikasi pengguna akan mencantumkan ruang yang dapat diakses oleh pengguna yang diautentikasi.

Prasyarat

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 google-auth
    
  • Project Google Cloud dengan Google Chat API yang diaktifkan dan dikonfigurasi. Untuk mengetahui langkah-langkahnya, lihat Mem-build aplikasi Google Chat.
  • Otorisasi dikonfigurasi untuk aplikasi Chat. Ruang listingan mendukung kedua metode autentikasi berikut:

Node.js

  • Node.js & npm
  • Library klien Google terbaru untuk Node.js. Untuk menginstalnya, jalankan perintah berikut di antarmuka command line Anda:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Project Google Cloud dengan Google Chat API yang diaktifkan dan dikonfigurasi. Untuk mengetahui langkah-langkahnya, lihat Mem-build aplikasi Google Chat.
  • Otorisasi dikonfigurasi untuk aplikasi Chat. Ruang listingan mendukung kedua metode autentikasi berikut:

Mencantumkan ruang dengan autentikasi pengguna

Untuk mencantumkan ruang di Google Chat, teruskan kode berikut dalam permintaan Anda:

Contoh berikut mencantumkan ruang bernama dan chat grup (tetapi bukan pesan langsung, yang difilter) yang terlihat oleh pengguna yang diautentikasi:

Python

  1. Di direktori kerja Anda, buat file bernama chat_space_list.py.
  2. Sertakan kode berikut di chat_space_list.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # 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)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Di direktori kerja Anda, buat dan jalankan contoh:

    python3 chat_space_list.py
    

Node.js

  1. Di direktori kerja Anda, buat file bernama list-spaces.js.
  2. Sertakan kode berikut di list-spaces.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Di direktori kerja Anda, jalankan contoh:

    node list-spaces.js
    

Chat API menampilkan array berpaginasi untuk ruang bernama dan chat grup.

Mencantumkan ruang dengan autentikasi aplikasi

Untuk mencantumkan ruang di Google Chat, teruskan kode berikut dalam permintaan Anda:

Contoh berikut mencantumkan ruang bernama dan chat grup (tetapi bukan pesan langsung) yang terlihat oleh aplikasi Chat:

Python

  1. Di direktori kerja Anda, buat file bernama chat_space_list_app.py.
  2. Sertakan kode berikut di chat_space_list_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. Di direktori kerja Anda, buat dan jalankan contoh:

    python3 chat_space_list_app.py
    

Node.js

  1. Di direktori kerja Anda, buat file bernama app-list-spaces.js.
  2. Sertakan kode berikut di app-list-spaces.js:

    const chat = require('@googleapis/chat');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Di direktori kerja Anda, jalankan contoh:

    node app-list-spaces.js
    

Chat API menampilkan array ruang yang dipaginasi.

Menyesuaikan penomoran halaman atau memfilter daftar

Untuk mencantumkan ruang di Google Chat, teruskan parameter kueri opsional berikut untuk menyesuaikan penomoran halaman atau memfilter ruang yang tercantum:

  • pageSize: Jumlah spasi maksimum untuk ditampilkan. Layanan mungkin mengembalikan kurang dari nilai ini. Jika tidak ditentukan, maksimal 100 spasi akan ditampilkan. Nilai maksimumnya adalah 1.000; nilai di atas 1.000 akan otomatis diubah menjadi 1.000.
  • pageToken: Token halaman, diterima dari panggilan ruang daftar sebelumnya. Berikan token ini untuk mengambil halaman berikutnya. Saat melakukan penomoran halaman, nilai filter harus cocok dengan panggilan yang menyediakan token halaman. Meneruskan nilai yang berbeda dapat menyebabkan hasil yang tidak diharapkan.
  • filter: Filter kueri. Untuk detail kueri yang didukung, lihat metode spaces.list.