이 가이드에서는 Google Chat API의 Membership 리소스에서 update() 메서드를 사용하여 스페이스 구성원을 스페이스 관리자 또는 스페이스 소유자로 변경하는 등 멤버십에 관한 속성을 변경하는 방법을 설명합니다.
Google Workspace 관리자는 update() 메서드를 호출하여 Google Workspace 조직의 모든 스페이스의 멤버십을 업데이트할 수 있습니다.
Membership 리소스는 실제 사용자 또는 Google Chat 앱이 스페이스에 초대되었는지, 스페이스에 속해 있는지, 스페이스에 없는지를 나타냅니다.
기본 요건
Node.js
- Google Chat에 액세스할 수 있는 Business 또는 Enterprise Google Workspace 계정
- 환경을 설정합니다.
- Google Cloud 프로젝트를 만듭니다.
- OAuth 동의 화면 구성
- Chat 앱의 이름, 아이콘, 설명으로 Google Chat API를 사용 설정하고 구성합니다.
- Node.js Cloud 클라이언트 라이브러리를 설치합니다.
- Google Chat API 요청에서 인증하려는 방식에 따라 액세스 사용자 인증 정보를 만듭니다.
- Chat 사용자로 인증하려면 OAuth 클라이언트 ID 사용자 인증 정보를 만들고 사용자 인증 정보를
credentials.json라는 JSON 파일로 로컬 디렉터리에 저장합니다. - Chat 앱으로 인증하려면 서비스 계정 사용자 인증 정보를 만들고 사용자 인증 정보를
credentials.json라는 JSON 파일로 저장합니다.
- Chat 사용자로 인증하려면 OAuth 클라이언트 ID 사용자 인증 정보를 만들고 사용자 인증 정보를
- 사용자로 인증할지 아니면 Chat 앱으로 인증할지에 따라 승인 범위 선택
멤버십 업데이트
스페이스 멤버십을 업데이트하려면 요청에 다음을 전달하세요.
- 승인 범위를 지정합니다.
UpdateMembership()메서드를 호출합니다.- 다음과 같이
membership을Membership의 인스턴스로 전달합니다.- 업데이트할 멤버십으로 설정된
name필드입니다. 여기에는 스페이스 ID와 멤버 ID가 포함됩니다. - 새 값으로 업데이트할 멤버십 필드입니다.
- 업데이트할 멤버십으로 설정된
updateMask를 전달하여 업데이트할 멤버십의 측면을 지정합니다. 여기에는 다음이 포함됩니다.role: Chat 스페이스 내 사용자의 역할로, 스페이스에서 허용되는 작업을 결정합니다. 권한에 대한 자세한 설명은 Chat API 참조 문서의MembershipRole를 참고하세요. 가능한 값은 다음과 같습니다.ROLE_MEMBER: 스페이스의 구성원 Chat UI에서 이 역할은 구성원이라고 합니다.ROLE_ASSISTANT_MANAGER: 스페이스 관리자 채팅 UI에서 이 역할은 관리자라고 합니다.ROLE_MANAGER: 스페이스 소유자 채팅 UI에서 이 역할은 소유자라고 합니다.
멤버를 소유자로 변경 (사용자 인증)
다음 예에서는 사용자 인증을 사용하여 Chat API를 호출하여 role을 ROLE_MANAGER로 지정하여 일반 스페이스 구성원을 스페이스 소유자로 만듭니다.
Node.js
샘플을 실행하려면 다음을 바꿉니다.
SPACE_NAME: 스페이스의name에서 가져온 ID입니다.ListSpaces()메서드를 호출하거나 스페이스의 URL에서 ID를 가져올 수 있습니다.MEMBER_NAME: 멤버십의name에서 가져온 ID입니다.ListMemberships()메서드를 호출하거나 Chat API를 사용하여 비동기적으로 멤버십을 만든 후 반환되는 응답 본문에서 ID를 가져올 수 있습니다.ROLE_NAME: 업데이트된 역할ROLE_MANAGER이 값을MembershipRole의 모든 값으로 설정할 수 있습니다. 예를 들어 일반 회원을 스페이스 관리자로 만들려면ROLE_NAME를ROLE_ASSISTANT_MANAGER로 변경합니다.
Google Chat API는 지정된 멤버십을 스페이스 소유자로 업데이트하고 Membership 인스턴스를 반환합니다.
소유자를 구성원으로 변경 (사용자 인증)
다음 예에서는 사용자 인증을 사용하여 Chat API를 호출하여 role을 ROLE_MEMBER로 지정하여 스페이스 소유자를 일반 스페이스 구성원으로 만듭니다.
Node.js
샘플을 실행하려면 다음을 바꿉니다.
SPACE_NAME: 스페이스의name에서 가져온 ID입니다.ListSpaces()메서드를 호출하거나 스페이스의 URL에서 ID를 가져올 수 있습니다.MEMBER_NAME: 멤버십의name에서 가져온 ID입니다.ListMemberships()메서드를 호출하거나 Chat API를 사용하여 비동기적으로 멤버십을 만든 후 반환되는 응답 본문에서 ID를 가져올 수 있습니다.ROLE_NAME: 업데이트된 역할ROLE_MEMBER
Google Chat API는 지정된 멤버십을 스페이스 소유자로 업데이트하고 Membership 인스턴스를 반환합니다.
멤버를 소유자로 변경하기 (채팅 앱 인증)
앱 인증에는 일회성 관리자 승인이 필요합니다.
Chat API를 호출하는 스크립트 작성
다음 예시에서는 앱 인증을 사용하여 Chat API를 호출하여 업데이트된 멤버십 속성을 지정하는 body에서 role를 ROLE_MANAGER로 지정하여 일반 스페이스 회원을 스페이스 소유자로 만듭니다.
Python
- 작업 디렉터리에
chat_membership_update_to_owner_app.py라는 파일을 만듭니다. chat_membership_update_to_owner_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 updates a specified space member to change it from a regular member to a space owner. ''' # 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().patch( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name='spaces/SPACE/members/MEMBERSHIP', updateMask='role', # Replace ROLE with a MembershipRole value. # Obtain the MembershipRole values from the membership of Chat API. body={'role': 'ROLE'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()코드에서 다음을 바꿉니다.
SPACE: 스페이스 이름입니다. Chat API의spaces.list메서드 또는 스페이스의 URL에서 가져올 수 있습니다.MEMBERSHIP: Chat API의spaces.members.list메서드에서 가져올 수 있는 멤버십 이름입니다.ROLE: 업데이트된 역할ROLE_MANAGER이 값을MembershipRole의 모든 값으로 설정할 수 있습니다. 예를 들어 일반 회원을 스페이스 관리자로 만들려면ROLE를ROLE_ASSISTANT_MANAGER로 변경합니다.
작업 디렉터리에서 다음 샘플을 빌드하고 실행합니다.
python3 chat_membership_update_to_owner_app.py
소유자를 구성원으로 변경하기 (Chat 앱 인증)
앱 인증에는 일회성 관리자 승인이 필요합니다.
Chat API를 호출하는 스크립트 작성
다음 예에서는 앱 인증을 사용하여 Chat API를 호출하여 업데이트된 멤버십 속성을 지정하는 body에서 role를 ROLE_MEMBER로 지정하여 스페이스 소유자를 일반 스페이스 구성원으로 만듭니다.
Python
- 작업 디렉터리에
chat_membership_update_to_member_app.py라는 파일을 만듭니다. chat_membership_update_to_member_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 via user credentials, then updates a specified space owner to change it to a regular member. ''' # 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().patch( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name='spaces/SPACE/members/MEMBERSHIP', updateMask='role', body={'role': 'ROLE_MEMBER'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()코드에서 다음을 바꿉니다.
SPACE: 스페이스 이름입니다. Chat API의spaces.list메서드 또는 스페이스의 URL에서 가져올 수 있습니다.MEMBERSHIP: Chat API의spaces.members.list메서드에서 가져올 수 있는 멤버십 이름입니다.
작업 디렉터리에서 다음 샘플을 빌드하고 실행합니다.
python3 chat_membership_update_to_member_app.py
Google Workspace 관리자로 구성원십 업데이트하기
Google Workspace 관리자는 update()
메서드를 호출하여 Google Workspace 조직의 모든 스페이스의 멤버십을 업데이트할 수 있습니다.
Google Workspace 관리자로 이 메서드를 호출하려면 다음 단계를 따르세요.
- 사용자 인증을 사용하여 메서드를 호출하고 관리자 권한을 사용하여 메서드 호출을 지원하는 승인 범위를 지정합니다.
- 요청에서
useAdminAccess쿼리 매개변수를true로 지정합니다.
자세한 내용과 예시는 Google Workspace 관리자로 Google Chat 스페이스 관리하기를 참고하세요.
관련 주제
- 사용자 또는 Google Chat 앱을 스페이스에 초대하거나 추가
- 사용자 또는 Chat 앱의 멤버십에 관한 세부정보 가져오기
- 스페이스의 구성원 나열
- 스페이스에서 사용자 또는 Chat 앱 삭제하기