Xoá thành viên khỏi không gian

Hướng dẫn này giải thích cách sử dụng phương thức delete() trên tài nguyên Membership của Google Chat API để xoá thành viên khỏi một không gian, còn được gọi là xoá tư cách thành viên. Bạn không thể xoá người quản lý không gian nếu họ là người quản lý không gian duy nhất trong một không gian. Chỉ định một người dùng khác làm người quản lý không gian trước khi xoá các thành viên này.

Nếu là quản trị viên Google Workspace, bạn có thể xoá người dùng, Nhóm Google hoặc ứng dụng Chat khỏi một không gian bất kỳ trong tổ chức Google Workspace của mình.

Tài nguyên Membership cho biết liệu người dùng là con người hay ứng dụng Google Chat có được mời, có tham gia hay không tham gia một không gian.

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

Node.js

Xoá thành viên khỏi không gian với tư cách là người dùng

Để xoá một người dùng, Nhóm Google hoặc ứng dụng Chat khỏi một không gian có xác thực người dùng, hãy truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.memberships. Người dùng uỷ quyền phải có quyền xoá người dùng hoặc Nhóm trên Google khỏi không gian. Để xoá một ứng dụng Chat, hãy chỉ định phạm vi uỷ quyền chat.memberships.app (các ứng dụng chỉ có thể xoá tư cách thành viên của chính mình chứ không thể xoá tư cách thành viên của các ứng dụng khác). Theo phương pháp hay nhất, hãy chọn phạm vi hạn chế nhất nhưng vẫn cho phép ứng dụng của bạn hoạt động.
  • Gọi phương thức DeleteMembership().
  • Truyền name của gói hội viên cần xoá. Nếu quyền thành viên thuộc về người quản lý không gian duy nhất trong một không gian, hãy chỉ định một người dùng khác làm người quản lý không gian trước khi xoá quyền thành viên này.

Sau đây là cách xoá gói thành viên bằng xác thực người dùng:

Node.js

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

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

// This sample shows how to delete 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 = {
    // Replace SPACE_NAME here
    name: 'spaces/SPACE_NAME'
  };

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

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

main().catch(console.error);

Để chạy mẫu này, hãy thay thế các nội dung sau:

  • SPACE_NAME: mã nhận dạng từ 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.
  • MEMBER_NAME: mã nhận dạng từ name của thành viên. Bạn có thể lấy mã nhận dạng bằng cách gọi phương thức ListMemberships().

Nếu thành công, nội dung phản hồi sẽ trả về gói thành viên có 'state': 'NOT_A_MEMBER', cho biết rằng thành viên đó không còn ở trong không gian nữa.

{
    "name": "spaces/SPACE_NAME/members/MEMBER_NAME",
    "state": "NOT_A_MEMBER"
}

Xoá thành viên khỏi không gian dưới dạng ứng dụng Chat

Để xác thực ứng dụng, bạn cần có sự phê duyệt một lần của quản trị viên.

Để xoá người dùng, Nhóm Google hoặc ứng dụng Chat khỏi một không gian có xác thực ứng dụng, hãy truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.app.memberships. Bạn chỉ có thể xoá tư cách thành viên của người quản lý không gian trong các không gian do ứng dụng Chat tạo.
  • Gọi phương thức delete trên tài nguyên membership.
  • Truyền name của gói hội viên cần xoá. Nếu quyền thành viên thuộc về người quản lý không gian duy nhất trong một không gian, hãy chỉ định một người dùng khác làm người quản lý không gian trước khi xoá quyền thành viên này.

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

Sau đây là cách xoá gói thành viên bằng phương thức xác thực ứng dụng:

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là chat_membership_delete_app.py.
  2. Thêm mã sau vào chat_membership_delete_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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then deletes the specified membership.
        '''
    
        # 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)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().delete(
    
            # The membership to delete.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBER with a membership name.
            # Obtain the membership name from the memberships resource of
            # Chat API. To delete a Chat app's membership, replace MEMBER
            # with app; an alias for the app calling the API.
            name='spaces/SPACE/members/MEMBER'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        # When deleting a membership, the response body is empty.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế những nội dung sau:

    • SPACE: tên của một không gian. Bạn có thể lấy tên này từ phương thức spaces.list trong Chat API hoặc từ URL của một không gian.

    • MEMBER: tên của một thành viên mà bạn có thể lấy từ phương thức spaces.members.list trong Chat API. Để xoá gói thành viên của một ứng dụng, hãy thay thế MEMBER bằng app.

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

    python3 chat_membership_delete_app.py

Nếu thành công, nội dung phản hồi sẽ trả về gói thành viên có 'state': 'NOT_A_MEMBER', cho biết rằng thành viên đó không còn ở trong không gian nữa.

{
    "name": "spaces/SPACE/members/MEMBER",
    "state": "NOT_A_MEMBER"
}

Xoá người dùng hoặc nhóm trên Google khỏi không gian với tư cách 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 DeleteMembership() để xoá người dùng, Nhóm Google hoặc ứng dụng Chat khỏi bất kỳ không gian nào trong tổ chức Google Workspace của bạn.

Để 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 đặc 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 trên Google Chat với tư cách là quản trị viên Google Workspace.

Các điểm hạn chế và điều cần cân nhắc

  • Với tính năng xác thực ứng dụng, một ứng dụng Chat có thể xoá người dùng, nhưng không thể xoá Nhóm Google hoặc ứng dụng Chat.