이 가이드에서는 Google Chat API의 SpaceEvent 리소스에서
list()
메서드를 사용하여 스페이스의
리소스 변경사항을 나열하는 방법을 설명합니다.
SpaceEvent 리소스
는 메시지, 반응, 멤버십과 같은 스페이스의 하위 리소스를 포함하여 대상 스페이스의 변경사항을 나타냅니다. 지원되는 이벤트 유형 및 이벤트 페이로드 목록에 대한 자세한 내용은 SpaceEvent 리소스 참조 문서의
eventType
및
payload
필드를 참고하세요.
요청 시간 최대 28일 전의 이벤트를 나열할 수 있습니다. 서버는 영향을 받는 리소스의 최신 버전이 포함된 이벤트를 반환합니다.
예를 들어 새 스페이스 멤버에 관한 이벤트를 나열하면 서버는 최신 멤버십 세부정보가 포함된 Membership 리소스를 반환합니다. 요청된 기간에 새 멤버가 삭제된 경우 이벤트 페이로드에 빈 Membership 리소스가 포함됩니다.
스페이스의 이벤트를 나열하려면 인증된 사용자 또는 Chat 앱이 스페이스의 멤버여야 합니다.
기본 요건
Node.js
- Google Chat에 액세스할 수 있는 Business 또는 Enterprise 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 앱으로 인증할지에 따라 승인 범위를 선택합니다.
Python
- Google Chat에 액세스할 수 있는 Business 또는 Enterprise Google Workspace 계정 Google Chat
- 환경 설정:
- Google Cloud 프로젝트를 만듭니다.
- OAuth 동의 화면 구성.
- Chat 앱의 이름, 아이콘, 설명으로 Google Chat API를 사용 설정하고 구성합니다.
- Python Cloud 클라이언트 라이브러리를 설치합니다.
- Google Chat API 요청에서 인증하려는 방식에 따라 액세스 사용자 인증 정보를 만듭니다.
- Chat 사용자로 인증하려면
OAuth 클라이언트 ID
사용자 인증 정보를 만들고 사용자 인증 정보를 JSON 파일로
credentials.json로컬 디렉터리에 저장합니다. - Chat 앱으로 인증하려면
서비스 계정
사용자 인증 정보를 만들고 사용자 인증 정보를
credentials.json이라는 JSON 파일로 저장합니다.
- Chat 사용자로 인증하려면
OAuth 클라이언트 ID
사용자 인증 정보를 만들고 사용자 인증 정보를 JSON 파일로
- 사용자로 인증할지Chat 앱으로 인증할지에 따라 승인 범위를 선택합니다.
스페이스 이벤트 나열 (사용자 인증)
Chat 스페이스의 스페이스 이벤트를 나열하려면 요청에 다음을 전달합니다.
요청에서 각 이벤트 유형을 지원하도록 하나 이상의 승인 범위를 지정합니다. 앱이 계속 작동할 수 있는 가장 제한적인 범위를 선택하는 것이 좋습니다. 범위를 선택하려면 인증 및 승인 개요를 참고하세요.
나열할 이벤트 유형의
filter를 전달하여ListSpaceEvents()메서드를 호출합니다. 이벤트 유형을 하나 이상 지정해야 하며 날짜별로 필터링할 수도 있습니다. 지원되는 이벤트 유형 목록은eventType리소스 참조 문서의 필드를 참고하세요.SpaceEvent
다음 예에서는 스페이스의 새 멤버십 및 메시지에 관한 이벤트를 나열합니다.
Node.js
이 샘플을 실행하려면 SPACE_NAME을 스페이스의
name
에서 가져온 ID로 바꿉니다name.
`ListSpaces()` 메서드를 호출하거나 스페이스의 URL에서 ID를 가져올 수 있습니다.ListSpaces()
Chat API는 새 멤버십 및 메시지에 관한 스페이스 이벤트의 페이지로 나누어진 목록 을 반환합니다.
스페이스 이벤트 나열 (Chat 앱 인증)
앱 인증에는 일회성 관리자 승인이 필요합니다.
앱 인증 및 Chat REST API를 사용하여 스페이스의 스페이스 이벤트를 나열하려면 요청에 다음을 전달합니다.
- 요청에서 각 이벤트 유형을 지원하도록 하나 이상의 승인 범위를 지정합니다. 앱이 계속 작동할 수 있는 가장 제한적인 범위를 선택하는 것이 좋습니다. 범위 선택에 대한 자세한 내용은
인증 및 승인 개요를 참고하세요.
https://www.googleapis.com/auth/chat.app.membershipshttps://www.googleapis.com/auth/chat.app.memberships.readonlyhttps://www.googleapis.com/auth/chat.app.messages.readonlyhttps://www.googleapis.com/auth/chat.app.spaceshttps://www.googleapis.com/auth/chat.app.spaces.readonly
spaceEvents리소스에서list메서드를 호출합니다.- 메시지를 나열할 스페이스의
name을 전달합니다. - 특정 이벤트 유형을 쿼리하는
filter를 전달합니다.
Chat API를 호출하는 스크립트 작성
다음은 앱 인증 및 Chat REST API를 사용하여 스페이스 이벤트를 나열하는 방법입니다.
Python
- 작업 디렉터리에
chat_spaceevents_list_app.py라는 파일을 만듭니다. chat_spaceevents_list_app.py에 다음 코드를 포함합니다.from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # Set authorization scopes based on the # event type. For example, if you are getting a space event # about a new membership, use the `chat.app.memberships` scope. # # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships", "https://www.googleapis.com/auth/chat.app.memberships.readonly", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/chat.app.spaces.readonly"] def main(): ''' Authenticates with Chat API using app authentication, then lists space events from a specified space. ''' # 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().spaceEvents().list( # The space to list events from. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()코드에서 다음을 바꿉니다.
SPACE_NAME: 스페이스 이름입니다. Chat API의spaces.list메서드 또는 스페이스의 URL에서 가져올 수 있습니다.
작업 디렉터리에서 다음 샘플을 빌드하고 실행합니다.
python3 chat_spaceevents_list_app.py
Chat API는 새 멤버십 및 메시지에 관한 스페이스 이벤트의 페이지로 나누어진 목록 을 반환합니다.