このガイドでは、membership
リソースで patch
メソッドを使用する方法について説明します
を使用して、メンバーシップに関する属性を変更できます。たとえば、
スペースのメンバーをスペースの管理者に変更したり、スペースの管理者をスペースのメンバーに変更したりできます。
「
Membership
リソース
人間のユーザーまたは Google Chat アプリのどちらが招待されているかを表します。
その場から離れることがなくなります。
前提条件
Python
- 企業または大企業 以下にアクセスできる Google Workspace アカウント Google Chat。
- 環境を設定します。
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成します。
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- Python Google API クライアント ライブラリ。
- <ph type="x-smartling-placeholder"></ph>
デスクトップ アプリケーション用の OAuth クライアント ID 認証情報を作成するサンプルを実行するには、
で、認証情報を
client_secrets.json
という名前の JSON ファイルとして ディレクトリにあります。
- <ph type="x-smartling-placeholder"></ph> ユーザー認証をサポートする認可スコープを選択します。
Node.js
- 企業または大企業 以下にアクセスできる Google Workspace アカウント Google Chat。
- 環境を設定します。
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成します。
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- Node.js Google API クライアント ライブラリ。
- <ph type="x-smartling-placeholder"></ph>
デスクトップ アプリケーション用の OAuth クライアント ID 認証情報を作成するサンプルを実行するには、
で、認証情報を
client_secrets.json
という名前の JSON ファイルとして ディレクトリにあります。
- <ph type="x-smartling-placeholder"></ph> ユーザー認証をサポートする認可スコープを選択します。
Apps Script
- 企業または大企業 以下にアクセスできる Google Workspace アカウント Google Chat。
- 環境を設定します。
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成します。
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- スタンドアロンの Apps Script プロジェクトを作成する [高度なチャット サービス] をオンにします。
- <ph type="x-smartling-placeholder"></ph> ユーザー認証をサポートする認可スコープを選択します。
メンバーシップを更新する
スペースのメンバーシップを更新するには、リクエストに次の内容を渡します。
chat.memberships
認可スコープを指定します。- 呼び出し
patch
メソッドMembership
リソースに対する権限、 更新するメンバーシップのname
とupdateMask
を渡します。body
で、更新されたメンバーシップ属性を指定します。 updateMask
には、更新するメンバーシップの要素を指定します。 次の内容が含まれます。 <ph type="x-smartling-placeholder">- </ph>
role
: Chat スペース内のユーザーのロール。これにより、許可されるユーザーが決まります。 できます。有効な値は次のとおりです。 <ph type="x-smartling-placeholder">- </ph>
ROLE_MEMBER
: スペースのメンバー。ユーザーには基本的な権限がありますが、 スペースへのメッセージの送信など、1 対 1 の無名のグループ 全員がこの役割を持ちます。ROLE_MANAGER
: スペースの管理者。ユーザーにはすべての基本的な権限に加え、 たとえば、スペースの管理権限(スペースをグループへの追加や メンバーの削除方法も学びます。spaceType
がSPACE
のスペースでのみサポートされます (名前付きスペース)。
スペースの通常のメンバーをスペースの管理者にする
次の例では、通常のスペースのメンバーをスペースの管理者にします。そのためには、
更新されたメンバーシップを指定する body
の ROLE_MANAGER
としての role
属性:
Python
- 作業ディレクトリに、
chat_membership_update.py
という名前のファイルを作成します。 chat_membership_update.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"] def main(): ''' Authenticates with Chat API via user credentials, then updates a specified space member to change it from a regular member to a space manager. ''' # 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().patch( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name='spaces/SPACE/members/MEMBERSHIP', updateMask='role', body={'role': 'ROLE_MANAGER'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()
コードの次のように置き換えます。
SPACE
: スペース名。 こちらのspaces.list
メソッド スペースの URL から取得できます。MEMBERSHIP
: メンバーシップ名。 こちらのspaces.members.list
メソッド 使用します。
作業ディレクトリでサンプルをビルドして実行します。
python3 chat_membership_update.py
Node.js
- 作業ディレクトリに、
chat_membership_update.js
という名前のファイルを作成します。 chat_membership_update.js
に次のコードを含めます。const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Updates a membership in a Chat space to change it from * a space member to a space manager. * @return {!Promise<!Object>} */ async function updateSpace() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.memberships', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.spaces.patch({ /** * The membership to update, and the updated role. * * Replace SPACE with a space name. * Obtain the space name from the spaces resource of Chat API, * or from a space's URL. * * Replace MEMBERSHIP with a membership name. * Obtain the membership name from the membership of Chat API. */ name: 'spaces/SPACE/members/MEMBERSHIP', updateMask: 'role', requestBody: { role: 'ROLE_MANAGER' } }); } /** * Use the service endpoint to call Chat API. */ updateSpace().then(console.log);
コードの次のように置き換えます。
SPACE
: スペース名。 こちらのspaces.list
メソッド スペースの URL から取得できます。MEMBERSHIP
: メンバーシップ名。 こちらのspaces.members.list
メソッド 使用します。
作業ディレクトリでサンプルをビルドして実行します。
python3 chat_membership_update.js
Apps Script
この例では、API 呼び出しを使用して Chat API を呼び出し、 高度なチャット サービス。
chat.memberships
承認スコープを以下に追加します。 Apps Script プロジェクトのappsscript.json
ファイル:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships" ]
このような関数を Apps Script プロジェクトの コード:
/** * Updates a membership from space member to space manager. * @param {string} memberName The resource name of the membership. */ function updateMembershipToSpaceManager(memberName) { try { const body = {'role': 'ROLE_MANAGER'}; Chat.Spaces.Members.patch(memberName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create message with error %s', err.message); } }
Google Chat API は、指定されたメンバーをスペースの管理者に変更し、スペースの管理者に戻します。
Membership
のインスタンス
変更の詳細が示されます。
スペースの管理者を正規メンバーに設定する
次の例では、次のように指定することで、スペースの管理者を通常のスペース メンバーにします。
更新されたメンバーシップを指定する body
の ROLE_MEMBER
としての role
属性:
Python
- 作業ディレクトリに、
chat_membership_update.py
という名前のファイルを作成します。 chat_membership_update.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"] def main(): ''' Authenticates with Chat API via user credentials, then updates a specified space member to change it from a regular member to a space manager. ''' # 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().patch( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name='spaces/SPACE/members/MEMBERSHIP', updateMask='role', body={'role': 'ROLE_MEMBER'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()
コードの次のように置き換えます。
SPACE
: スペース名。 こちらのspaces.list
メソッド スペースの URL から取得できます。MEMBERSHIP
: メンバーシップ名。 こちらのspaces.members.list
メソッド 使用します。
作業ディレクトリでサンプルをビルドして実行します。
python3 chat_membership_update.py
Node.js
- 作業ディレクトリに、
chat_membership_update.js
という名前のファイルを作成します。 chat_membership_update.js
に次のコードを含めます。const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Updates a membership in a Chat space to change it from * a space manager to a space member. * @return {!Promise<!Object>} */ async function updateSpace() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.memberships', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.spaces.patch({ /** * The membership to update, and the updated role. * * Replace SPACE with a space name. * Obtain the space name from the spaces resource of Chat API, * or from a space's URL. * * Replace MEMBERSHIP with a membership name. * Obtain the membership name from the membership of Chat API. */ name: 'spaces/SPACE/members/MEMBERSHIP', updateMask: 'role', requestBody: { role: 'ROLE_MEMBER' } }); } /** * Use the service endpoint to call Chat API. */ updateSpace().then(console.log);
コードの次のように置き換えます。
SPACE
: スペース名。 こちらのspaces.list
メソッド スペースの URL から取得できます。MEMBERSHIP
: メンバーシップ名。 こちらのspaces.members.list
メソッド 使用します。
作業ディレクトリでサンプルをビルドして実行します。
python3 chat_membership_update.js
Apps Script
この例では、API 呼び出しを使用して Chat API を呼び出し、 高度なチャット サービス。
chat.memberships
承認スコープを以下に追加します。 Apps Script プロジェクトのappsscript.json
ファイル:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships" ]
このような関数を Apps Script プロジェクトの コード:
/** * Updates a membership from space manager to space member. * @param {string} memberName The resource name of the membership. */ function updateMembershipToSpaceMember(memberName) { try { const body = {'role': 'ROLE_MEMBER'}; Chat.Spaces.Members.patch(memberName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create message with error %s', err.message); } }
Google Chat API は、指定されたメンバーをスペースの管理者に変更し、スペースの管理者に戻します。
Membership
のインスタンス
変更の詳細が示されます。
関連トピック
- ユーザーまたは Google Chat アプリをスペースに招待または追加する。
- ユーザーまたは Chat アプリのメンバーシップに関する詳細情報を取得する。
- スペースのメンバーを一覧表示する
- スペースからユーザーまたは Chat アプリを削除する。