Cập nhật không gian

Hướng dẫn này giải thích cách sử dụng phương thức patch trên tài nguyên Space của API Google Chat để cập nhật một không gian. Cập nhật không gian để thay đổi các thuộc tính của không gian đó, như tên hiển thị, nội dung mô tả và nguyên tắc mà người dùng nhìn thấy.

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.

Đ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
    
  • 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. Việc cập nhật không gian cần phải Xác thực người dùng có phạm vi uỷ quyền chat.spaces.

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. Việc cập nhật không gian cần phải Xác thực người dùng có phạm vi uỷ quyền chat.spaces.

Cập nhật không gian

Để cập nhật một không gian hiện có trong Google Chat, hãy chuyển thông tin sau vào yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.spaces.
  • Gọi phương thức patch trên tài nguyên Space và truyền name của không gian cần cập nhật, cũng như updateMask và một body chỉ định các thuộc tính đã cập nhật của không gian.
  • updateMask chỉ định các khía cạnh của không gian cần cập nhật và bao gồm những nội dung sau:
    • displayName: Cập nhật tên không gian mà người dùng có thể đọc được trong giao diện người dùng Google Chat. Chỉ hỗ trợ thay đổi tên hiển thị của không gian có loại SPACE, hoặc khi bao gồm cả mặt nạ spaceType để thay đổi loại không gian GROUP_CHAT thành SPACE. Việc cố gắng cập nhật tên hiển thị của GROUP_CHAT hoặc không gian DIRECT_MESSAGE sẽ dẫn đến lỗi đối số không hợp lệ.
    • spaceType: Cập nhật loại không gian, nhưng chỉ hỗ trợ thay đổi loại không gian GROUP_CHAT thành SPACE. Đưa displayName cùng với spaceType vào mặt nạ cập nhật và đảm bảo không gian được chỉ định có displayName không trống và loại không gian SPACE. Nếu không gian hiện có đã có loại SPACE, bao gồm cả mặt nạ spaceType và loại SPACE trong không gian được chỉ định, thì bạn không bắt buộc phải cập nhật tên hiển thị . Việc cố gắng cập nhật loại không gian theo các cách khác sẽ dẫn đến lỗi đối số không hợp lệ.
    • spaceDetails: Thông tin chi tiết về không gian, bao gồm cả nội dung mô tả và các quy tắc.
    • spaceHistoryState: Hỗ trợ bật hoặc tắt nhật ký cho không gian nếu tổ chức cho phép người dùng thay đổi chế độ cài đặt nhật ký của họ. Loại trừ lẫn nhau với tất cả các đường dẫn trường khác.

Dưới đây là cách cập nhật spaceDetails của một không gian hiện có:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_space_update.py.
  2. Đưa mã sau vào chat_space_update.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"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates the specified space description and guidelines.
        '''
    
        # 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().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế SPACE bằng tên không gian. Bạn có thể lấy tên này từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_space_update.py
    

Node.js

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên update-space.js.
  2. Đưa mã sau vào update-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a Chat space with the description and guidelines.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.patch({
        name: 'spaces/SPACE',
        updateMask: 'spaceDetails',
        requestBody: {
          spaceDetails: {
            description: 'This description was updated with Chat API!',
            guidelines: 'These guidelines were updated with Chat API!'
          },
        }
      });
    }
    
    updateSpace().then(console.log);
    
  3. Trong mã, hãy thay thế SPACE bằng tên không gian. Bạn có thể lấy tên này từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc của bạn, hãy chạy mẫu:

    node update-space.js
    

API Google Chat trả về một thực thể của tài nguyên Space phản ánh nội dung cập nhật.