이 가이드에서는 Google Chat API의 Membership 리소스에서
update()
메서드를 사용하여 스페이스 멤버를 스페이스 관리자 또는 스페이스 소유자로 변경하는 등 멤버십에 관한 속성을 변경하는 방법을 설명합니다.
Google Workspace 관리자는 update() 메서드를 호출하여 Google Workspace 조직의 모든 스페이스 멤버십을 업데이트할 수 있습니다.
Membership 리소스
는 실제 사용자 또는 Google Chat 앱이 스페이스에 초대되었는지,
스페이스의 일부인지, 스페이스에 없는지를 나타냅니다.
기본 요건
Node.js
- Google Chat에 액세스할 수 있는 비즈니스 또는 엔터프라이즈 Google Workspace 계정 Google Chat
- 환경을 설정합니다.
- Google Cloud 프로젝트를 만듭니다.
- OAuth 동의 화면 구성.
- Chat 앱의 이름, 아이콘, 설명으로 Google Chat API를 사용 설정하고 구성합니다.
- Node.js Cloud 클라이언트 라이브러리를 설치합니다.
- Google Chat API 요청에서 인증하려는 방식에 따라 액세스 사용자 인증 정보를 만듭니다.
- Chat 사용자로 인증하려면
OAuth 클라이언트 ID
사용자 인증 정보를 만들고 사용자 인증 정보를 JSON 파일로
credentials.json로컬 디렉터리에 저장합니다. - Chat 앱으로 인증하려면
서비스 계정
사용자 인증 정보를 만들고 사용자 인증 정보를
credentials.json이라는 JSON 파일로 저장합니다.
- Chat 사용자로 인증하려면
OAuth 클라이언트 ID
사용자 인증 정보를 만들고 사용자 인증 정보를 JSON 파일로
- 사용자로 인증할지Chat 앱으로 인증할지에 따라 승인 범위를 선택합니다.
멤버십 업데이트
스페이스 멤버십을 업데이트하려면 요청에 다음을 전달합니다.
- 승인 범위를 지정합니다.
- 사용자 인증을 사용하면
승인 범위를 지정합니다.
chat.memberships - 앱 인증을 사용하면
chat.app.memberships승인 범위를 지정합니다. 앱 인증으로 멤버십을 업데이트할 때는 Chat 앱에서 만든 스페이스의 멤버십만 업데이트할 수 있습니다. 앱 인증에는 일회성 관리자 승인이 필요합니다.
- 사용자 인증을 사용하면
승인 범위를 지정합니다.
-
UpdateMembership()메서드를 호출합니다. - 다음을 사용하여
membership을Membership의 인스턴스로 전달합니다.- 업데이트할 멤버십으로 설정된
name필드(스페이스 ID 및 회원 ID 포함) - 새 값으로 설정된 업데이트할 멤버십 필드
- 업데이트할 멤버십으로 설정된
updateMask를 전달하여 업데이트할 멤버십의 측면을 지정합니다. 여기에는 다음이 포함됩니다.role: Chat 스페이스 내에서 사용자의 역할로, 스페이스에서 허용되는 작업을 결정합니다. 권한에 관한 자세한 설명은MembershipRoleChat API 참조 문서를 참고하세요. 가능한 값은 다음과 같습니다.ROLE_MEMBER: 스페이스의 멤버입니다. Chat UI에서 이 역할은 멤버 라고 합니다.ROLE_ASSISTANT_MANAGER: 스페이스 관리자입니다. Chat UI에서 이 역할은 관리자 라고 합니다.ROLE_MANAGER: 스페이스 소유자입니다. Chat UI에서 이 역할은 소유자 라고 합니다.
멤버를 소유자로 변경 (사용자 인증)
다음 예에서는 사용자 인증을 사용하여 Chat API를 호출하여 role을
ROLE_MANAGER로 지정하여 일반 스페이스 멤버를 스페이스 소유자로 만듭니다.
Node.js
샘플을 실행하려면 다음을 바꿉니다.
SPACE_NAME: 스페이스의name에서 가져온 ID입니다. `ListSpaces()` 메서드를 호출하거나 스페이스의 URL에서 ID를 가져올 수 있습니다.ListSpaces()MEMBER_NAME: 멤버십의name에서 가져온 ID입니다. ID는ListMemberships()메서드를 호출하거나 Chat API로 멤버십을 비동기식으로 만든 후 반환된 응답 본문에서 가져올 수 있습니다.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를 가져올 수 있습니다.ListSpaces()MEMBER_NAME: 멤버십의name에서 가져온 ID입니다. ID는ListMemberships()메서드를 호출하거나 Chat API로 멤버십을 비동기식으로 만든 후 반환된 응답 본문에서 가져올 수 있습니다.ROLE_NAME: 업데이트된 역할인ROLE_MEMBER입니다.
Google Chat API는 지정된 멤버십을 스페이스 소유자로 업데이트하고
다음 인스턴스를 반환합니다.
Membership.
멤버를 소유자로 변경 (Chat 앱 인증)
앱 인증에는 일회성 관리자 승인이 필요합니다.
Chat API를 호출하는 스크립트 작성
다음 예에서는
앱 인증
을 사용하여 Chat API를 호출하여 업데이트된 멤버십 속성을 지정하는 body에서
ROLE_MANAGER을 role로 지정하여 일반 스페이스 멤버를 스페이스 소유자로 만듭니다.
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 앱을 삭제합니다.