このガイドでは、Google Chat API の membership
リソースで list
メソッドを使用して、スペースのメンバーをページ分けされ、フィルタ可能なスペース内のメンバーリストとして一覧表示する方法について説明します。アプリの認証を使用してメンバーシップを一覧表示すると、Chat アプリがアクセスできるスペースのメンバーシップが一覧表示されますが、Chat アプリのメンバーシップ(それを含む)は除外されます。ユーザー認証を使用してメンバーシップを一覧表示すると、認証されたユーザーがアクセスできるスペースのメンバーシップが一覧表示されます。
Membership
リソースは、人間のユーザーまたは Google Chat アプリがスペースに招待されているか、スペースの一部であるか、スペースから離脱したかを表します。
前提条件
Python
- Python 3.6 以降
- pip パッケージ管理ツール
最新の Python 用 Google クライアント ライブラリ。インストールまたは更新するには、コマンドライン インターフェースで次のコマンドを実行します。
pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
- Google Chat API が有効で構成されている Google Cloud プロジェクト。手順については、Google Chat アプリを作成するをご覧ください。
Chat 用アプリ用に構成された認可。リスティング メンバーシップは、次の両方の認証方法をサポートしています。
ユーザー認証を使用してスペースのメンバーを一覧表示する
認証されたユーザーがアクセスできるスペース内のユーザー、Google グループ、Chat アプリを一覧表示するには、リクエストに次の内容を渡します。
- ユーザー認証では、
chat.memberships.readonly
またはchat.memberships
承認スコープを指定します。 membership
リソースのlist
メソッドを呼び出します。- Google グループを一覧表示するには、クエリ パラメータ
showGroups
をtrue
に設定します。
次の例では、認証されたユーザーに表示される Google グループ、人間、アプリのメンバーを一覧表示します。
Python
- 作業ディレクトリに、
chat_member_list_user.py
という名前のファイルを作成します。 chat_member_list_user.py
に次のコードを含めます。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 = ["https://www.googleapis.com/auth/chat.memberships.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then lists Google Group, human, and app members in a specified space. ''' # 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().members().list( # The space for which to list memberships. parent = 'spaces/SPACE', # Set this parameter to list Google Groups. showGroups = 'true' ).execute() # Prints the list of memberships. print(result) if __name__ == '__main__': main()
コードで
SPACE
をスペース名に置き換えます。スペースは、Chat API のspaces.list
メソッドまたはスペースの URL から取得します。作業ディレクトリでサンプルをビルドして実行します。
python3 chat_member_list_user.py
Google Chat API は、指定されたスペースの Google グループ、人間、アプリのメンバーのリストを返します。
アプリの認証を使用してスペースのメンバーを一覧表示する
認証済みのアプリがアクセスできるスペース内のユーザーと Chat アプリを一覧表示するには、リクエストに次の内容を渡します。
- アプリ認証では、
chat.bot
認証スコープを指定します。 member
リソースのlist
メソッドを呼び出します。- Google グループを一覧表示するには、クエリ パラメータ
showGroups
をtrue
に設定します。
次の例では、Chat 用アプリに表示される人間のスペースのメンバー(スペースの管理者ではない)を一覧表示します。
Python
- 作業ディレクトリに、
chat_member_list_app.py
という名前のファイルを作成します。 chat_member_list_app.py
に次のコードを含めます。from google.oauth2 import service_account from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Use the service endpoint to call Chat API. result = chat.spaces().members().list( # The space for which to list memberships. parent = 'spaces/SPACE', # An optional filter that returns only human space members. filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"' ).execute() print(result)
コードで
SPACE
をスペース名に置き換えます。スペースは、Chat API のspaces.list
メソッドまたはスペースの URL から取得します。作業ディレクトリでサンプルをビルドして実行します。
python3 chat_member_list_app.py
Google Chat API は、指定されたスペースから人間のスペースのメンバー(スペースの管理者を除く)のリストを返します。
ページ設定をカスタマイズする、またはリストをフィルタリングする
メンバーシップを一覧表示するには、次のクエリ パラメータを渡して、一覧表示されたメンバーシップのページ設定やフィルタリングを行います。
pageSize
: 返されるメンバーシップの最大数。サービスはこの値よりも少ない値を返すことがあります。指定しない場合、最大で 100 個のスペースが返されます。最大値は 1,000 です。1,000 を超える値は自動的に 1,000 に変更されます。pageToken
: 前の list スペース呼び出しから受け取ったページトークン。後続のページを取得するには、このトークンを指定します。ページ分割を行う場合、フィルタ値はページトークンを提供した呼び出しと一致する必要があります。別の値を渡すと、予期しない結果になる可能性があります。filter
: クエリフィルタ。ユーザー認証が必要です。サポートされているクエリの詳細については、spaces.members.list
メソッドをご覧ください。
関連トピック
- ユーザーまたは Chat アプリのメンバーシップに関する詳細情報を取得する。
- ユーザーまたは Chat アプリをスペースに招待または追加する。
- Google Chat スペースでユーザーのメンバーシップを更新する。
- スペースからユーザーまたは Chat アプリを削除する。