이 가이드에서는 Google Chat API의 SpaceEvent 리소스에서
get()
메서드를 사용하여 Google Chat 스페이스의 이벤트에 관한 세부정보를 가져오는 방법을 설명합니다.
SpaceEvent 리소스
는 스페이스 또는 메시지,
반응, 멤버십과 같은 하위 리소스의 변경사항을 나타냅니다. 지원되는 이벤트 유형에 대한 자세한 내용은 SpaceEvent 리소스
참조 문서의
eventType 필드를 참고하세요.
요청 시간 최대 28일 전의 이벤트를 요청할 수 있습니다. 이벤트에는 변경된 리소스의 최신 버전이 포함되어 있습니다. 예를 들어 새 메시지에 관한 이벤트를 요청했지만 나중에 메시지가 업데이트된 경우 서버는 이벤트 페이로드에서 업데이트된 Message 리소스를 반환합니다.
이 메서드를 호출하려면 사용자 인증을 사용해야 합니다. 이벤트를 가져오려면 인증된 사용자가 이벤트가 발생한 스페이스의 구성원이어야 합니다.
기본 요건
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 앱으로 인증할지에 따라 승인 범위를 선택합니다.
스페이스 이벤트에 관한 세부정보 가져오기 (사용자 인증)
Google Chat에서 스페이스 이벤트에 관한 세부정보를 가져오려면 요청에 다음을 전달하세요.
- 요청에서 이벤트 유형을 지원하는 승인 범위를 지정합니다. 앱이 계속 작동할 수 있는 가장 제한적인 범위를 선택하는 것이 좋습니다.
- 가져올 스페이스 이벤트의
name을 전달하여GetSpaceEvent()메서드를 호출합니다.
다음 예에서는 스페이스 이벤트를 가져옵니다.
Node.js
이 Node.js 코드 샘플은 Chat RPC API를 사용합니다.
이 샘플을 실행하려면 다음을 바꾸세요.
SCOPE_NAME: 이벤트 유형을 기반으로 하는 승인 범위입니다. 예를 들어 새 멤버십에 관한 스페이스 이벤트를 가져오는 경우chat.memberships.readonly범위를https://www.googleapis.com/auth/chat.memberships.readonly로 형식을 지정하여 사용합니다.ListSpaceEvents()메서드에서 이벤트 유형을 가져올 수 있습니다. 이 메서드를 사용하는 방법을 알아보려면 스페이스의 이벤트 나열을 참고하세요.SPACE_NAME: 스페이스의name에서 가져온 ID입니다. `ListSpaces()` 메서드를 호출하거나 스페이스의 URL에서 ID를 가져올 수 있습니다.ListSpaces()SPACE_EVENT_NAME: 스페이스 이벤트의name에서 가져온 ID입니다.ListSpaceEvents()메서드에서 ID를 가져올 수 있습니다. 이 메서드를 사용하는 방법을 알아보려면 스페이스의 이벤트 나열을 참고하세요.
Chat API는 이벤트에 관한 세부정보가 포함된
SpaceEvent
인스턴스를 반환합니다.
스페이스 이벤트에 관한 세부정보 가져오기 (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
get메서드를spaceEvents리소스에서 호출합니다.- 이벤트 세부정보를 가져올 스페이스의
name을 전달합니다.
Chat API를 호출하는 스크립트 작성
앱 인증 및 Chat REST API를 사용하여 스페이스 이벤트에 관한 세부정보를 가져오는 방법은 다음과 같습니다.
Python
이 Python 코드 샘플은 Chat REST API를 사용합니다.
- 작업 디렉터리에
chat_spaceevents_get_app.py라는 파일을 만듭니다. chat_spaceevents_get_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().get( # The space to get event details 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. name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME', ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()코드에서 다음을 바꿉니다.
SPACE_NAME: 스페이스 이름입니다. Chat API의spaces.list메서드 또는 스페이스의 URL에서 가져올 수 있습니다.SPACE_EVENT_NAME: 스페이스 이벤트의name에서 가져온 ID입니다.ListSpaceEvents()메서드에서 ID를 가져올 수 있습니다. 이 메서드를 사용하는 방법을 알아보려면 스페이스의 이벤트 나열을 참고하세요.
작업 디렉터리에서 다음 샘플을 빌드하고 실행합니다.
python3 chat_spaceevents_get_app.py
Chat API는 새 멤버십 및 메시지에 관한 스페이스 이벤트의 페이지로 나뉜 목록 을 반환합니다.