Liệt kê không gian

Hướng dẫn này giải thích cách sử dụng tài nguyên list trên tài nguyên Space của API Google Chat để liệt kê không gian. Không gian danh sách trả về danh sách không gian được phân trang và có thể lọc.

Tài nguyên Space đại diện cho nơi mọi người và các ứng dụng trong Chat có thể gửi tin nhắn, chia sẻ tệp và cộng tác. Có một số loại không gian:

  • Tin nhắn trực tiếp (DM) là các cuộc trò chuyện giữa 2 người dùng hoặc một người dùng với một ứng dụng Chat.
  • Cuộc trò chuyện nhóm là các cuộc trò chuyện giữa ba người dùng trở lên và các ứng dụng trong Chat.
  • Không gian được đặt tên là các nơi cố định để mọi người gửi tin nhắn, chia sẻ tệp và cộng tác.

Liệt kê các không gian có xác thực ứng dụng liệt kê các không gian mà ứng dụng Chat có quyền truy cập. Các không gian danh sách có quy trình Xác thực người dùng sẽ liệt kê các không gian mà người dùng đã xác thực có quyền truy cập.

Điều kiện tiên quyết

Python

  • Python 3.6 trở lên
  • Công cụ quản lý gói pip
  • Các thư viện ứng dụng mới nhất của Google dành cho Python. Để cài đặt hoặc cập nhật các công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh của bạn:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Một dự án trên Google Cloud đã bật và thiết lập API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
  • Đã định cấu hình hoạt động uỷ quyền cho ứng dụng Chat. Không gian danh sách hỗ trợ cả hai phương thức xác thực sau:

Node.js

  • Node.js và npm
  • Thư viện ứng dụng mới nhất của Google dành cho Node.js. Để cài đặt các công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh của bạn:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Một dự án trên Google Cloud đã bật và thiết lập API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
  • Đã định cấu hình hoạt động uỷ quyền cho ứng dụng Chat. Không gian danh sách hỗ trợ cả hai phương thức xác thực sau:

Liệt kê không gian có xác thực người dùng

Để liệt kê không gian trong Google Chat, hãy chuyển nội dung sau vào yêu cầu của bạn:

Ví dụ sau đây liệt kê các không gian có tên và cuộc trò chuyện nhóm (nhưng không phải là tin nhắn trực tiếp đã được lọc ra) mà người dùng đã xác thực có thể nhìn thấy:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_space_list.py.
  2. Đưa mã sau vào 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. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_space_list.py
    

Node.js

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên list-spaces.js.
  2. Đưa mã sau vào 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. Trong thư mục đang làm việc của bạn, hãy chạy mẫu:

    node list-spaces.js
    

API Chat trả về một mảng được phân trang gồm các không gian và cuộc trò chuyện nhóm được đặt tên.

Liệt kê không gian có xác thực ứng dụng

Để liệt kê không gian trong Google Chat, hãy chuyển nội dung sau vào yêu cầu của bạn:

Ví dụ sau đây liệt kê các không gian và cuộc trò chuyện nhóm đã đặt tên (chứ không phải tin nhắn trực tiếp) mà ứng dụng Chat nhìn thấy:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_space_list_app.py.
  2. Đưa mã sau vào 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. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_space_list_app.py
    

Node.js

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên app-list-spaces.js.
  2. Đưa mã sau vào 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. Trong thư mục đang làm việc của bạn, hãy chạy mẫu:

    node app-list-spaces.js
    

API Chat trả về một mảng không gian được phân trang.

Tuỳ chỉnh tính năng phân trang hoặc lọc danh sách

Để liệt kê các không gian trong Google Chat, hãy chuyển các tham số truy vấn không bắt buộc sau đây để tuỳ chỉnh cách phân trang hoặc lọc các không gian được liệt kê:

  • pageSize: Số lượng không gian tối đa cần trả về. Dịch vụ có thể trả về ít hơn giá trị này. Nếu không chỉ định thì hệ thống sẽ trả về tối đa 100 dấu cách. Giá trị tối đa là 1.000; các giá trị trên 1.000 sẽ tự động thay đổi thành 1.000.
  • pageToken: Mã thông báo trang, nhận được từ lệnh gọi trước đó trong không gian danh sách. Cung cấp mã thông báo này để truy xuất trang tiếp theo. Khi phân trang, giá trị bộ lọc phải khớp với lệnh gọi đã cung cấp mã thông báo trang. Việc chuyển một giá trị khác có thể dẫn đến kết quả không mong muốn.
  • filter: Bộ lọc cụm từ tìm kiếm. Để biết thông tin chi tiết về truy vấn được hỗ trợ, hãy xem phương thức spaces.list.