스페이스에서 사용자 또는 Google Chat 앱 삭제하기

이 가이드에서는 Google Chat API의 membership 리소스에서 delete 메서드를 사용하여 스페이스에서 사용자 또는 Chat 앱을 삭제하는 방법을 설명합니다(멤버십 삭제라고도 함). 스페이스 관리자가 유일한 스페이스 관리자인 경우 스페이스 관리자를 삭제할 수 없습니다. 멤버십을 삭제하기 전에 다른 사용자를 스페이스 관리자로 할당하세요.

Membership 리소스는 실제 사용자 또는 Google Chat 앱이 스페이스에 초대되었는지, 스페이스의 일부인지, 또는 스페이스에 없는지를 나타냅니다.

기본 요건

Python

  • Python 3.6 이상
  • pip 패키지 관리 도구
  • 최신 Python용 Google 클라이언트 라이브러리입니다. 이를 설치하거나 업데이트하려면 명령줄 인터페이스에서 다음 명령어를 실행합니다.

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Google Chat API가 사용 설정 및 구성된 Google Cloud 프로젝트 단계는 Google Chat 앱 빌드를 참고하세요.
  • 채팅 앱에 구성된 승인입니다. 멤버십을 삭제하려면 지정된 멤버십을 삭제할 권한이 있는 사용자의 chat.memberships 또는 chat.memberships.app 승인 범위를 사용하는 사용자 인증이 필요합니다.

스페이스에서 사용자 또는 채팅 앱 삭제하기

스페이스에서 사용자 또는 채팅 앱을 삭제하려면 다음 안내를 따르세요.

  • 사용자를 삭제하려면 chat.memberships 승인 범위를 지정합니다. 채팅 앱을 삭제하려면 chat.memberships.app 승인 범위를 지정합니다. 앱은 자신의 멤버십만 삭제할 수 있고 다른 앱의 멤버십은 삭제할 수 없습니다. 앱이 작동할 수 있도록 허용하는 가장 제한적인 범위를 선택하는 것이 좋습니다.
  • membership 리소스에서 delete 메서드를 호출합니다.
  • 삭제할 멤버십의 name를 전달합니다. 멤버십이 스페이스의 유일한 스페이스 관리자에게 속한 경우 이 멤버십을 삭제하기 전에 다른 사용자를 스페이스 관리자로 할당합니다.

멤버십을 삭제하는 방법은 다음과 같습니다.

Python

  1. 작업 디렉터리에서 chat_membership_delete.py라는 파일을 만듭니다.
  2. chat_membership_delete.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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then deletes the specified membership.
        '''
    
        # 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().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. 코드에서 다음을 바꿉니다.

    • SPACE: Chat API의 spaces.list 메서드 또는 스페이스 URL에서 가져올 수 있는 스페이스 이름입니다.

    • MEMBER: Chat API의 spaces.members.list 메서드에서 가져올 수 있는 멤버십 이름입니다. 앱 멤버십을 삭제하려면 MEMBERapp로 바꿉니다.

  4. 작업 디렉터리에서 샘플을 빌드하고 실행합니다.

    python3 chat_membership_delete.py
    

성공하면 응답 본문은 'state': 'NOT_A_MEMBER'가 포함된 멤버십을 반환하며, 이는 멤버가 더 이상 스페이스에 없음을 나타냅니다.

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