このガイドでは、Google Chat API の SpaceEvent
リソースで get
メソッドを使用して、Google Chat スペースからイベントの詳細を取得する方法について説明します。
SpaceEvent
リソースは、スペースやその子リソース(メッセージ、リアクション、メンバーシップなど)に対する変更を表します。サポートされているイベントタイプについては、SpaceEvent
リソースのリファレンス ドキュメントの eventType
フィールドをご覧ください。
イベントをリクエストできるのは、リクエストの日時の 28 日前までです。このイベントには、変更されたリソースの最新バージョンが含まれます。たとえば、新しいメッセージに関するイベントをリクエストした後にそのメッセージが更新された場合、サーバーは更新された Message
リソースをイベント ペイロードで返します。
このメソッドを呼び出すには、ユーザー認証を使用する必要があります。イベントを取得するには、認証されたユーザーがイベントが発生したスペースのメンバーである必要があります。
前提条件
Python
- Python 3.6 以降
- pip パッケージ管理ツール
Python 用の最新の Google クライアント ライブラリ。これらをインストールまたは更新するには、コマンドライン インターフェースで次のコマンドを実行します。
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Google Chat API が有効で構成された Google Cloud プロジェクト。手順については、Google Chat アプリを作成するをご覧ください。
Chat アプリ用に承認が構成されています。スペース イベントを取得するには、イベントタイプをサポートするスコープを持つユーザー認証が必要です。スコープを選択するには、認証と認可の概要をご覧ください。
スペースのイベントの詳細を確認する
Google Chat で SpaceEvent
の詳細を取得する方法は次のとおりです。
SpaceEvent
リソースのget
メソッドを呼び出します。- 取得する
SpaceEvent
のname
を渡します。Google Chat のSpaceEvent
リソースからSpaceEvent
名を取得します。 - ユーザー認証では、リクエストのイベントタイプをサポートする認可スコープを指定します。アプリを機能させるため、最も制限の厳しいスコープを選択することをおすすめします。
ユーザー認証を使用して SpaceEvent
を取得する方法は次のとおりです。
Python
- 作業ディレクトリに、
chat_space_event_get.py
という名前のファイルを作成します。 chat_space_event_get.py
に次のコードを追加します。"""Gets a SpaceEvent resource from the Chat API.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ['SCOPE'] # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES) creds = flow.run_local_server() # 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 event to get. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace SPACE_EVENT with a SpaceEvent name. # Obtain the spaceEvent name from the SpaceEvent resource of # Chat API. name='spaces/SPACE/spaceEvents/SPACE_EVENT' ) .execute() ) # Prints details about the created spaceEvent. print(result)
コードで、次のように置き換えます。
SCOPE
: イベントタイプに基づく承認スコープ。たとえば、新しいメンバーシップに関するスペース イベントを取得する場合は、https://www.googleapis.com/auth/chat.memberships.readonly
形式のchat.memberships.readonly
スコープを使用します。イベントタイプはspaces.spaceEvents.list
メソッドから取得できます。この方法の使用方法については、スペースからのイベントを一覧表示するをご覧ください。SPACE
: スペース名。Chat API のspaces.list
メソッドまたはスペースの URL から取得できます。SPACE_EVENT
:spaces.spaceEvents.list
メソッドから取得できるスペース イベントの名前。
作業ディレクトリで、サンプルをビルドして実行します。
python3 chat_space_event_get.py
Chat API は、SpaceEvent
のインスタンスとイベントの詳細を返します。