Google Chat スペースのイベントを一覧表示する

このガイドでは、Google Chat API の SpaceEvent リソースで list() メソッドを使用して、スペース内のリソースに対する変更を一覧表示する方法について説明します。

SpaceEvent リソースは、スペースの子リソース(メッセージ、リアクション、メンバーシップなど)を含む、移行先のスペースの変更を表します。サポートされているイベントタイプとイベント ペイロードのリストについて詳しくは、SpaceEvent リソースのリファレンス ドキュメントの eventType フィールドと payload フィールドをご覧ください。

リクエストの時点から 28 日前までのイベントを一覧表示できます。サーバーは、影響を受けるリソースの最新バージョンを含むイベントを返します。たとえば、新しいスペース メンバーに関するイベントをリストすると、最新のメンバーの詳細を含む Membership リソースがサーバーから返されます。リクエストされた期間中に新しいメンバーが削除された場合、イベント ペイロードには空の Membership リソースが含まれます。

このメソッドを呼び出すには、ユーザー認証を使用する必要があります。スペースのイベントを一覧表示するには、認証済みのユーザーがスペースのメンバーである必要があります。

前提条件

Node.js

スペースのイベントを一覧表示する

Chat スペースのスペース イベントを一覧表示するには、リクエストに次のように渡します。

  • リクエストで各イベントタイプをサポートする 1 つ以上の認可スコープを指定します。ベスト プラクティスとして、アプリが機能する範囲で最も制限の厳しいスコープを選択します。スコープを選択するには、認証と認可の概要をご覧ください。

  • 一覧表示するイベントタイプの filter を渡して、ListSpaceEvents() メソッドを呼び出します。イベントタイプを少なくとも 1 つ指定する必要があります。日付でフィルタすることもできます。サポートされているイベントタイプの一覧については、SpaceEvent リソースの eventType フィールドのリファレンス ドキュメントをご覧ください。

次の例は、スペース内の新しいメンバーシップとメッセージに関するイベントを一覧表示します。

Node.js

chat/client-libraries/cloud/list-space-events-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly'
];

// This sample shows how to list space events with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages
    filter: 'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"'
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

main().catch(console.error);

このサンプルを実行するには、SPACE_NAME をスペースの name の ID に置き換えます。ID は、ListSpaces() メソッドを呼び出すか、スペースの URL から取得できます。

Chat API は、新しいメンバーシップとメッセージに関するスペース イベントのページ分けされたリストのリストを返します。