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 không gian. Cập nhật một không gian để thay đổi các thuộc tính về không gian đó, chẳng hạn 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.

Nếu là quản trị viên Google Workspace, bạn có thể gọi phương thức patch() để cập nhật bất kỳ không gian nào hiện có trong tổ chức Google Workspace của mình.

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à cuộc trò chuyện giữa hai người dùng hoặc một người dùng và ứng dụng Chat.
  • Cuộc trò chuyện nhóm là cuộc trò chuyện giữa 3 người dùng trở lên và ứng dụng Chat.
  • Không gian được đặt tên là những không gian ổn định, nơi 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

Node.js

Python

Java

Apps Script

Cập nhật không gian với tư cách là người dùng

Để cập nhật một không gian hiện có trong Google Chat bằng tính năng xác thực người dùng, hãy truyền những nội dung sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.spaces.
  • Gọi phương thức UpdateSpace(). Trong yêu cầu, bạn chỉ định trường name của không gian, trường updateMask có một hoặc nhiều trường cần cập nhật và body có thông tin không gian đã cập nhật.

Bạn có thể cập nhật các thông tin như tên hiển thị, loại không gian, trạng thái nhật ký và nhiều thông tin khác. Để xem tất cả các trường mà bạn có thể cập nhật, hãy xem tài liệu tham khảo.

Sau đây là cách cập nhật trường displayName của một không gian hiện có:

Node.js

chat/client-libraries/cloud/update-space-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces'];

// This sample shows how to update a space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    space: {
      // Replace SPACE_NAME here
      name: 'spaces/SPACE_NAME',
      displayName: 'New space display name'
    },
    // The field paths to update. Separate multiple values with commas or use
    // `*` to update all field paths.
    updateMask: {
      // The field paths to update.
      paths: ['display_name']
    }
  };

  // Make the request
  const response = await chatClient.updateSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/update_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces"]

# This sample shows how to update a space with user credential
def update_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.UpdateSpaceRequest(
        space = {
            # Replace SPACE_NAME here
            'name': 'spaces/SPACE_NAME',
            'display_name': 'New space display name'
        },
        # The field paths to update. Separate multiple values with commas.
        update_mask = 'displayName'
    )

    # Make the request
    response = client.update_space(request)

    # Handle the response
    print(response)

update_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/UpdateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.UpdateSpaceRequest;
import com.google.chat.v1.Space;
import com.google.protobuf.FieldMask;

// This sample shows how to update space with user credential.
public class UpdateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      UpdateSpaceRequest.Builder request = UpdateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          // Replace SPACE_NAME here.
          .setName("spaces/SPACE_NAME")
          .setDisplayName("New space display name"))
        .setUpdateMask(FieldMask.newBuilder()
          // The field paths to update.
          .addPaths("display_name"));
      Space response = chatServiceClient.updateSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to update a space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces'
 * referenced in the manifest file (appsscript.json).
 */
function updateSpaceUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const name = 'spaces/SPACE_NAME';
  const space = {
    displayName: 'New space display name'
  };
  // The field paths to update. Separate multiple values with commas or use
  // `*` to update all field paths.
  const updateMask = 'displayName';

  // Make the request
  const response = Chat.Spaces.patch(space, name, {
    updateMask: updateMask
  });

  // Handle the response
  console.log(response);
}

Để chạy mẫu này, hãy thay thế SPACE_NAME bằng mã nhận dạng trong trường name của không gian. Bạn có thể lấy mã nhận dạng bằng cách gọi phương thức ListSpaces() hoặc từ URL của không gian.

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

Cập nhật không gian khi là quản trị viên Google Workspace

Nếu là quản trị viên Google Workspace, bạn có thể gọi phương thức UpdateSpace() để cập nhật bất kỳ không gian nào trong tổ chức Google Workspace của mình.

Để gọi phương thức này với tư cách là quản trị viên Google Workspace, hãy làm như sau:

  • Gọi phương thức bằng cách xác thực người dùng và chỉ định một phạm vi uỷ quyền hỗ trợ việc gọi phương thức bằng quyền quản trị viên.
  • Trong yêu cầu, hãy chỉ định tham số truy vấn useAdminAccess thành true.

Để biết thêm thông tin và ví dụ, hãy xem bài viết Quản lý không gian Google Chat với tư cách là quản trị viên Google Workspace.

Cập nhật không gian dưới dạng ứng dụng Chat

Quy trình xác thực ứng dụng yêu cầu quyền phê duyệt của quản trị viên một lần.

Để cập nhật một không gian hiện có trong Google Chat bằng tính năng xác thực ứng dụng, hãy truyền những thông tin sau vào yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.app.spaces. Với tính năng xác thực ứng dụng, bạn chỉ có thể cập nhật các không gian do ứng dụng Chat tạo.
  • Gọi phương thức patch trên tài nguyên Space. Trong yêu cầu, bạn chỉ định trường name của không gian, trường updateMask có một hoặc nhiều trường cần cập nhật và body có thông tin không gian đã cập nhật.

Bạn có thể cập nhật các thông tin như tên hiển thị, loại không gian, trạng thái nhật ký, chế độ cài đặt quyền và nhiều thông tin khác. Để xem tất cả các trường mà bạn có thể cập nhật, hãy xem tài liệu tham khảo.

Tạo một khoá API

Để gọi phương thức API Bản dùng thử cho nhà phát triển, bạn phải sử dụng phiên bản bản xem trước không công khai dành cho nhà phát triển của tài liệu khám phá API. Để xác thực yêu cầu, bạn phải truyền một khoá API.

Để tạo Khoá API, hãy mở dự án Google Cloud của ứng dụng rồi làm như sau:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > API và dịch vụ > Thông tin xác thực.

    Chuyển đến phần Thông tin xác thực

  2. Nhấp vào Tạo thông tin xác thực > Khoá API.
  3. Khoá API mới của bạn sẽ xuất hiện.
    • Nhấp vào biểu tượng Sao chép để sao chép khoá API để sử dụng trong mã của ứng dụng. Bạn cũng có thể tìm thấy khoá API trong mục "Khoá API" trong thông tin đăng nhập của dự án.
    • Nhấp vào Hạn chế khoá để cập nhật chế độ cài đặt nâng cao và giới hạn việc sử dụng khoá API. Để biết thêm thông tin, hãy xem bài viết Áp dụng các quy tắc hạn chế đối với khoá API.

Viết tập lệnh gọi API Chat

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

Python

  1. Trong thư mục đang hoạt động, hãy tạo một tệp có tên chat_space_update_app.py.
  2. Thêm mã sau vào chat_space_update_app.py:

    from google.oauth2 import service_account
    from apiclient.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.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates the specified space description and guidelines.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # 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 updated space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế các nội dung sau:

    • API_KEY: khoá API mà bạn đã tạo để tạo điểm cuối dịch vụ cho Chat API.
    • SPACE bằng tên không gian mà bạn có thể lấ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 hoạt động, hãy tạo bản dựng và chạy mẫu:

    python3 chat_space_update_app.py

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