Google Chat のイベントに登録する

このページでは、Google Workspace Events API を使用して Google Chat アプリが登録できる Google Chat イベントについて説明します。

Google Chat アプリの開発について詳しくは、 Google Chat API の概要をご覧ください。

サポートされている Chat ターゲット リソース

Google Workspace Events API では、次のサブスクリプションがサポートされています。

  • space リソースとして表されるスペース
  • Cloud Identity API の user リソースとして表されるユーザー

サポートされているチャット イベント

Google Workspace サブスクリプションでは、Chat で次の種類の変更に関するイベントを受信できます。

  • スペース内の新規または更新されたメッセージ
  • メッセージに対する新規または削除されたリアクション
  • スペース内の新規、更新、削除されたメンバー
  • 登録しているスペースの変更(スペースの名前や説明の更新など)。

定期購入を作成するためのイベントタイプ

サブスクリプションを作成するときに、eventTypes[] フィールドを使用して、受信するイベントのタイプを指定します。イベントタイプは、google.workspace.APPLICATION.RESOURCE.VERSION.ACTION などの CloudEvents 仕様に従ってフォーマットされます。

たとえば、Chat スペースに参加したユーザーに関するイベントを受信するには、スペースをターゲット リソースとして指定し、イベントタイプを google.workspace.chat.membership.v1.created として指定します。任意のユーザーがスペースに参加したことに関するイベントを受信するには、そのユーザーをターゲット リソースとして指定し、イベントの種類を google.workspace.chat.membership.v1.created として指定します。イベントの仕組みについて詳しくは、Google Workspace イベントの構造をご覧ください。

次の表に、スペースへの登録とユーザーのサブスクリプションでサポートされるイベントタイプを示します。

イベントの種類 説明 リソースデータ
スペースへの登録  

google.workspace.chat.message.v1.created

新しいメッセージが投稿されました。

space.message

google.workspace.chat.message.v1.updated

メッセージが更新される。

space.message

google.workspace.chat.reaction.v1.created

リアクションが作成されます。

space.message.reaction

google.workspace.chat.reaction.v1.deleted

リアクションが削除されました。

space.message.reaction

google.workspace.chat.membership.v1.created

このスペースにメンバーが作成されます。

space.membership

google.workspace.chat.membership.v1.updated

このスペースのメンバーが更新されました。

space.membership

google.workspace.chat.membership.v1.deleted

このスペースから 1 人のメンバーが削除されます。

space.membership

google.workspace.chat.space.v1.updated

スペースが更新されます。

space

google.workspace.chat.space.v1.deleted

スペースは削除されます。

space

ユーザーのサブスクリプション  

google.workspace.chat.membership.v1.created

ユーザーがスペースのメンバーになります。

space.membership

google.workspace.chat.membership.v1.updated

スペースへのユーザーのメンバーシップが更新されます。

space.membership

google.workspace.chat.membership.v1.deleted

ユーザーがスペースのメンバーから削除されます。

space.membership

出力専用イベントタイプ

google.workspace.APPLICATION.RESOURCE.VERSION.ACTION イベントタイプに登録すると、イベントタイプのバッチ バージョンも受信するように、サブスクリプションが自動的に設定されます。たとえば、google.workspace.chat.membership.v1.created に登録すると、「google.workspace.chat.membership.v1.batchCreated」のイベントも届きます。

次の表に、スペースとユーザーのサブスクリプションでのみ出力されるイベントタイプを示します。

イベントの種類 説明 リソースデータ

google.workspace.chat.message.v1.batchCreated

複数のメッセージが同時に投稿されます。

spaces.messages のリスト

google.workspace.chat.message.v1.batchUpdated

複数のメッセージが同時に更新されます。

spaces.messages のリスト

google.workspace.chat.reaction.v1.batchCreated

同時に複数のリアクションが作成されます。

spaces.messages.reactions のリスト

google.workspace.chat.reaction.v1.batchDeleted

複数のリアクションが同時に削除されます。

spaces.messages.reactions のリスト

google.workspace.chat.membership.v1.batchCreated

  • target_resourceスペースの場合: スペースに複数のメンバーが作成されます。
  • target_resourceユーザーの場合: ユーザーは複数のスペースのメンバーになります。

spaces.memberships のリスト

google.workspace.chat.membership.v1.batchUpdated

  • target_resourceスペースの場合: スペース内の複数のメンバーが更新されます。
  • target_resourceユーザーの場合: ユーザーのスペースへのメンバーシップの更新は複数回行われます。

spaces.memberships のリスト

google.workspace.chat.membership.v1.batchDeleted

  • target_resourceスペースの場合: スペースで複数のメンバーが削除されます。
  • target_resourceユーザーの場合: そのユーザーは複数のスペースのメンバーから削除されます。

spaces.memberships のリスト

google.workspace.chat.space.v1.batchUpdated

スペースに複数の更新があります。

spaces のリスト

イベントデータ

このセクションでは、Chat でのイベントのイベントデータとサンプル ペイロードについて説明します。

Google Workspace サブスクリプションが Chat からイベントを受信すると、data フィールドにそのイベントのペイロードが含まれます。このペイロードには、変更された Google Workspace リソースに関する情報が含まれています。たとえば、スペースのメンバーシップ イベントに登録している場合、これらのイベントのペイロードには、変更された spaces.membership リソースに関する情報が含まれます。

イベント ペイロード内のリソースデータ

サブスクリプションを作成するときに、ペイロードにリソースの詳細を含めるか、リソースの名前のみを含めるかを指定できます。たとえば、Chat スペースのメンバーに関するイベントを受信する場合は、イベント ペイロードで受信するメンバーシップ リソースのフィールドを指定できます。

次の表に、Chat スペース spaces/AAAABBBBBB のサブスクリプションの JSON ペイロードの例を示します。定期購入が受信するイベントごとに、ペイロードがイベントの data フィールドに表示されます。

イベントの種類 JSON ペイロード

ユーザーが「Hello World」というメッセージをスペースに投稿します。

google.workspace.chat.message.v1.created

リソースデータが含まれます
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD",
        "sender":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE"
        },
        "space":
        {
            "name": "spaces/AAAABBBBBB"
        },
        "argumentText": "Hello world"
    }
}
      
リソースデータを除く
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
ユーザーがスペースの管理者になります。

google.workspace.chat.membership.v1.updated

リソースデータが含まれます
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321",
        "state": "JOINED",
        "member":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      
リソースデータを除く
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321"
    }
}
      
ユーザーがスペースの説明を「Cymbal Labs のセールスチーム」に更新します。 google.workspace.chat.space.v1.updated
リソースデータが含まれます
{
    "space":
    {
        "name": "spaces/AAAABBBBBB",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      
リソースデータを除く
{
    "space":
    {
        "name": "spaces/AAAABBBBBB"
    }
}
      
2 人の Chat ユーザーが同時にスペースに追加されました。 google.workspace.chat.membership.v1.batchCreated
リソースデータが含まれます
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321",
            "state": "JOINED",
            "member":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/987654321234567890",
            "state": "JOINED",
            "member":
            {
                "name": "users/987654321234567890",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      
リソースデータを除く
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
ユーザーがメッセージに 😊? の絵文字でリアクションします。 google.workspace.chat.reaction.v1.created
リソースデータが含まれます
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
リソースデータは省略
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
ユーザーはメッセージに 😊? 絵文字 や Ω の絵文字でリアクションします。 google.workspace.chat.reaction.v1.batchCreated
リソースデータが含まれます
{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
            "user":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
            "user":
            {
                "name": "users/98765431234564321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      
リソースデータは省略
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}