Google Workspace Events API를 사용하여 일정 구독하기

이 페이지에서는 Google Workspace Events API에 대한 개요를 제공하고 이 API를 사용하여 Google Workspace 전반에서 이벤트를 구독하는 방법을 설명합니다.

Google Workspace 이벤트 는 리소스가 생성, 업데이트, 삭제되는 등 Google Workspace 리소스의 변경사항을 나타냅니다. Google Workspace Events API를 사용하여 Google Workspace 리소스를 구독하고 관련 이벤트를 수신합니다.

앱에서 이벤트를 수신하는 방법

앱에서 Google Workspace 이벤트를 수신하도록 하려면 Google Workspace Events API를 사용하여 Google Workspace 리소스에 대한 구독을 만듭니다.

Google Workspace Events API가 이벤트를 전송하는 방식을 보여주는 그림
그림 1. Google Workspace Events API에서 Google Chat 앱에 이벤트를 전송하는 방법의 예입니다.

다음 예에서는 Google Workspace Events API에서 구독을 통해 Chat 앱에 이벤트를 전송하는 방법을 설명합니다.

  1. Chat 앱이 Google Chat 스페이스를 구독합니다.
  2. Chat 스페이스가 변경됩니다. 예를 들어 스페이스에 새 메시지가 게시됩니다.
  3. Chat은 구독의 알림 엔드포인트 역할을 하는 Google Cloud Pub/Sub, 의 주제에 이벤트를 전송합니다. 이벤트에는 변경된 사항에 대한 데이터가 포함됩니다. 예를 들어 새 메시지에 관한 이벤트의 경우 이벤트에는 생성된 Message 리소스에 관한 세부정보가 포함됩니다.
  4. Chat 앱이 이벤트가 포함된 Google Cloud Pub/Sub 메시지를 처리하고 필요한 경우 작업을 수행합니다.

중요한 용어

Google Workspace Events API에서 사용되는 일반적인 용어는 다음과 같습니다.

Google Workspace 이벤트

Google Workspace 리소스의 변경사항입니다. 이벤트는 CloudEvents 사양을 사용하여 형식이 지정되며 구독 이벤트 또는 수명 주기 이벤트일 수 있습니다.

구독 이벤트
Chat 스페이스의 새 메시지와 같이 모니터링 중인 Google Workspace 리소스의 변경사항입니다. 변경된 리소스에 관해 수신할 세부정보의 양을 지정할 수 있습니다. 자세한 내용은 Google Workspace 이벤트의 구조를 참고하세요.
수명 주기 이벤트
Google Workspace 구독에 관한 이벤트입니다. 수명 주기 이벤트는 구독 이벤트 누락을 방지할 수 있도록 문제 및 구독 상태를 알려줍니다. 기본적으로 구독은 항상 수명 주기 이벤트를 수신합니다. 자세한 내용은 Google Workspace 구독의 수명 주기 이벤트를 참고하세요.
Google Workspace 구독

Google Workspace 애플리케이션의 리소스를 모니터링하는 명명된 항목입니다. 구독은 Subscription 리소스로 표시됩니다. 구독은 다음 정보로 정의됩니다.

대상 리소스
모니터링할 Google Workspace 리소스입니다. 이 리소스는 Google Workspace 구독의 targetResource 필드에 표시됩니다. 각 구독은 하나의 리소스만 모니터링할 수 있습니다. Google Workspace Events API에서 지원하는 Google Workspace 리소스를 확인하려면 지원되는 Google Workspace 이벤트를 참고하세요.
이벤트 유형
대상 리소스에 관해 알림을 받을 변경사항 유형입니다. 예를 들어 Chat 스페이스를 구독한 경우 멤버십 및 메시지와 같은 스페이스 및 하위 리소스에 관한 이벤트를 수신할지 선택할 수 있습니다.
알림 엔드포인트
Google Workspace 구독에서 이벤트를 수신하는 엔드포인트입니다. Google Workspace Events API는 Google Cloud Pub/Sub 주제를 알림 엔드포인트로 지원합니다. Google Cloud Pub/Sub 사용에 관한 자세한 내용은 Google Cloud Pub/Sub 문서를 참고하세요.
페이로드 옵션
변경된 리소스에 관해 수신할 이벤트 데이터입니다.

지원되는 Google Workspace 이벤트

앱에서 수신할 수 있는 이벤트는 구독의 대상 리소스에 따라 다릅니다. 다음 표에는 가능한 각 대상 리소스에 지원되는 이벤트가 표시됩니다.

대상 리소스 지원되는 이벤트
Chat 스페이스
  • 메시지
  • 멤버십
  • 반응
  • 공백
Chat 사용자
  • 멤버십
Google Drive 파일 또는 공유 드라이브 파일
  • 액세스 제안
  • 승인
  • 댓글
  • 파일
  • 답글
Google Meet 회의 스페이스 및 사용자
  • 연맹
  • 참여자 세션
  • 녹화
  • 스마트 노트
  • 스크립트

자세한 내용은 다음 가이드를 참고하세요.

Google Workspace 이벤트의 구조

Google Workspace 이벤트는 이벤트 데이터를 설명하는 업계 표준 방식인 CloudEvents 사양을 따릅니다. Google Workspace 이벤트에는 다음이 포함됩니다.

다음 섹션에서는 Google Workspace 이벤트의 속성 및 데이터 구조를 설명합니다.

CloudEvent 속성

Google Workspace 이벤트에는 다음과 같은 필수 CloudEvents 속성이 포함됩니다.

속성 설명

datacontenttype

이벤트에 전달된 데이터 유형입니다.

application/json

id

CloudEvent의 식별자입니다.

spaces/AAAABBBBBBB/spaceEvents/ABCDEFGHIJKLMNO

source

이벤트의 소스입니다. Google Workspace 이벤트의 경우 구독의 전체 리소스 이름입니다. //workspaceevents.googleapis.com/subscriptions/chat-spaces-abcdefg

specversion

이 이벤트에 사용된 CloudEvent 사양 버전입니다.

1.0

subject

이벤트가 발생한 Google Workspace 리소스입니다.

//chat.googleapis.com/spaces/AAAABBBBBBB

time

이벤트가 발생한 타임스탬프(RFC 3339 형식)입니다.

2023-09-07T21:37:36.260127Z

type

Google Workspace 이벤트 유형입니다.

google.workspace.chat.message.v1.created

이벤트 데이터

이벤트 데이터는 대상 리소스의 하위 리소스를 포함하여 구독의 대상 리소스에 대한 변경사항을 나타내는 페이로드입니다. 구독에서 변경된 리소스에 관한 데이터를 페이로드에 포함할지 아니면 변경된 리소스의 이름만 포함할지 지정할 수 있습니다.

예를 들어 Chat 스페이스를 구독한 경우 스페이스의 새 메시지에 관한 이벤트를 수신할 수 있습니다. 새 메시지에 관한 이벤트의 경우 이벤트 데이터에는 생성된 Chat spaces.message 리소스가 포함된 페이로드가 포함됩니다.

구독을 만들 때 앱에서 수신하는 이벤트에 포함되는 리소스 데이터의 양을 지정할 수 있습니다.

리소스 데이터 페이로드 구독 만료
리소스 데이터 포함 변경된 리소스의 일부 또는 모든 필드를 포함합니다. 최대 4시간 또는 도메인 전체 위임을 사용하는 경우 24시간
리소스 데이터 제외 변경된 리소스의 이름만 포함합니다. 최대 7일

이러한 이벤트 데이터 옵션은 구독의 payloadOptions 필드에 표시됩니다.

Google Cloud Pub/Sub 메시지로서의 이벤트

Google Workspace Events API 구독은 Google Workspace 이벤트를 수신하는 알림 엔드포인트로 Google Cloud Pub/Sub 주제를 사용합니다. 이벤트는 Google Cloud Pub/Sub 메시지로 인코딩됩니다. 앱은 Google Cloud Pub/Sub 메시지를 처리하여 이벤트에 대한 조치를 취하거나 응답할 수 있습니다.

다음 예에서는 Chat 스페이스의 업데이트된 메시지에 관한 이벤트가 포함된 Google Cloud Pub/Sub 메시지를 보여줍니다.

 {
    "message":
    {
        "attributes":
        {
            "ce-datacontenttype": "application/json",
            "ce-id": "spaces/SPACE_ID/spaceEvents/SPACE_EVENT_ID",
            "ce-source": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
            "ce-specversion": "1.0",
            "ce-subject": "//chat.googleapis.com/spaces/SPACE_ID",
            "ce-time": "2023-09-07T21:37:53.274191Z",
            "ce-type": "google.workspace.chat.message.v1.updated"
        },
        "data": "EVENT_DATA",
        "messageId": "PUBSUB_MESSAGE_ID",
        "orderingKey": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
        "publishTime": "2023-09-07T21:37:53.713Z"
    }
}

이 예에는 다음 필드가 포함되어 있습니다.

  • attributes: CloudEvent의 속성입니다. 여기에는 이벤트 유형이 포함됩니다. 이 경우 이벤트는 스페이스의 업데이트된 메시지에 관한 것입니다.
  • data: Base64 인코딩 문자열로 형식이 지정된 업데이트된 spaces.message 리소스에 관한 세부정보가 포함된 이벤트 데이터입니다.
  • messageId: Google Cloud Pub/Sub 메시지의 식별자입니다.

Google Cloud Pub/Sub 메시지에서 CloudEvents를 지정하는 방법에 관한 자세한 내용은 CloudEvents용 Google Cloud Pub/Sub 프로토콜 결합을 참고하세요.