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

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

Google Workspace 이벤트는 리소스가 생성, 업데이트, 삭제되는 등 Google Workspace 리소스의 변경사항을 나타냅니다. 앱은 Google Workspace 리소스를 구독하여 관심 있는 관련 이벤트를 수신할 수 있습니다.

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

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

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

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

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

중요한 용어

다음은 Google Workspace Events API에서 사용되는 일반적인 용어의 목록입니다.

Google Workspace 이벤트

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

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

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

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

지원되는 Google Workspace 이벤트

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

타겟 리소스 지원되는 이벤트
Google Chat 스페이스
  • 메시지
  • 멤버십
  • 리액션
  • 공백
Google Chat 사용자
  • 멤버십
Google Meet 회의 공간
  • 연맹
  • 참석자 세션
  • 녹화
  • 스크립트
Google Meet 사용자
  • 연맹
  • 참석자 세션
  • 녹화
  • 스크립트

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

Google Workspace 이벤트 구조

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

  • CloudEvent의 속성
  • 이벤트로 인해 변경된 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

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

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 Cloud Pub/Sub 주제를 Google Workspace 이벤트를 수신하는 알림 엔드포인트로 사용합니다. 이벤트는 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: 업데이트된 spaces.message 리소스에 관한 세부정보가 포함된 이벤트 데이터로, Base64 인코딩 문자열 형식입니다.
  • messageId: Google Cloud Pub/Sub 메시지의 식별자입니다.

Google Cloud Pub/Sub 메시지에서 CloudEvents가 지정되는 방식에 관한 자세한 내용은 CloudEvents용 Google Cloud Pub/Sub 프로토콜 바인딩을 참고하세요.