スペースを更新する

このガイドでは、Google Chat API の Space リソースで patch() メソッドを使用してスペースを更新する方法について説明します。更新 スペースの属性(ユーザーに表示される表示名など)を変更できます。 説明、ガイドラインです

Google Workspace 管理者は、patch() メソッドを呼び出すことができます を使用して、Google Workspace 組織内の既存のスペースを更新します。

Space リソース ユーザーと Chat アプリがメッセージを送信し、 ファイルの共有、共同編集を行えますスペースにはいくつかのタイプがあります。

  • ダイレクト メッセージ(DM)は、2 人のユーザー間、またはユーザーと Chat アプリ間の会話です。
  • グループ チャットとは、3 人以上のユーザーと Chat 用アプリ。
  • 名前付きスペースは、ユーザーがメッセージの送信、ファイルの共有、コラボレーションを行うための永続的な場所です。

前提条件

Node.js

Python

Java

Apps Script

<ph type="x-smartling-placeholder">

ユーザーとしてスペースを更新する

ユーザー認証を使用して Google Chat の既存のスペースを更新するには、リクエストで次の情報を渡します。

  • chat.spaces 認可スコープを指定します。
  • UpdateSpace() メソッドを呼び出します。リクエストで、スペースの name フィールド、更新する 1 つ以上のフィールドを含む updateMask フィールド、更新されたスペース情報を含む body を指定します。

表示名、スペースの種類、履歴の状態、 できます。更新可能なすべてのフィールドについては、リファレンス ドキュメントをご覧ください。

既存のスペースの displayName フィールドを更新する方法は次のとおりです。

Node.js

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

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces'];

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

  // Initialize request argument(s)
  const request = {
    space: {
      // Replace SPACE_NAME here
      name: 'spaces/SPACE_NAME',
      displayName: 'New space display name'
    },
    // The field paths to update. Separate multiple values with commas or use
    // `*` to update all field paths.
    updateMask: {
      // The field paths to update.
      paths: ['display_name']
    }
  };

  // Make the request
  const response = await chatClient.updateSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/update_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces"]

# This sample shows how to update a space with user credential
def update_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.UpdateSpaceRequest(
        space = {
            # Replace SPACE_NAME here
            'name': 'spaces/SPACE_NAME',
            'display_name': 'New space display name'
        },
        # The field paths to update. Separate multiple values with commas.
        update_mask = 'displayName'
    )

    # Make the request
    response = client.update_space(request)

    # Handle the response
    print(response)

update_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/UpdateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.UpdateSpaceRequest;
import com.google.chat.v1.Space;
import com.google.protobuf.FieldMask;

// This sample shows how to update space with user credential.
public class UpdateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      UpdateSpaceRequest.Builder request = UpdateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          // Replace SPACE_NAME here.
          .setName("spaces/SPACE_NAME")
          .setDisplayName("New space display name"))
        .setUpdateMask(FieldMask.newBuilder()
          // The field paths to update.
          .addPaths("display_name"));
      Space response = chatServiceClient.updateSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to update a space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces'
 * referenced in the manifest file (appsscript.json).
 */
function updateSpaceUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const name = 'spaces/SPACE_NAME';
  const space = {
    displayName: 'New space display name'
  };
  // The field paths to update. Separate multiple values with commas or use
  // `*` to update all field paths.
  const updateMask = 'displayName';

  // Make the request
  const response = Chat.Spaces.patch(space, name, {
    updateMask: updateMask
  });

  // Handle the response
  console.log(response);
}

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

Google Chat API は、メッセージに関連付けられた Space は、 あります。

Google Workspace 管理者としてスペースを更新する

Google Workspace 管理者は、 UpdateSpace() メソッドを使用して Google Workspace の任意のスペースを更新します。 できます。

Google Workspace 管理者としてこのメソッドを呼び出す手順は次のとおりです。

  • ユーザー認証を使用してメソッドを呼び出し、管理者権限を使用してメソッドの呼び出しをサポートする認可スコープを指定します。
  • リクエストでは、クエリ パラメータ useAdminAccesstrue に指定します。

詳細と例については、 Google Workspace 管理者として Google Chat スペースを管理する

スペースを Chat 用アプリとして更新する

アプリの認証にはワンタイム認証が必要です 管理者の承認が必要です。

Google Chat の既存のスペースを アプリの認証、 リクエストに以下を渡します。

  • chat.app.spaces 認可スコープを指定します。 アプリ認証では、Chat アプリによって作成されたスペースのみを更新できます。
  • Space リソースpatch メソッドを呼び出します。イン スペース name フィールド、updateMask を指定します。 更新するフィールドを指定することができます。 body は、更新されたスペース情報に置き換えます。

表示名、スペースの種類、履歴の状態、 権限の設定などができます。更新できるすべてのフィールドを確認するには、以下をご覧ください。 リファレンス ドキュメントをご覧ください。

API キーを作成する

デベロッパー プレビュー版 API メソッドを呼び出すには、API 検出ドキュメントの非公開のデベロッパー プレビュー版を使用する必要があります。リクエストを認証するには、API キーを渡す必要があります。

API キーを作成するには、アプリの Google Cloud プロジェクトを開き、次の手順を行います。

  1. Google Cloud コンソールで、メニュー > [API とサービス] > [認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成] &gt; をクリックします。 API キー
  3. 新しい API キーが表示されます。
    • コピーアイコン をクリックします。 を使用して、アプリのコードで使用する API キーをコピーできます。API キーは、プロジェクトの認証情報の [API キー] セクションでも確認できます。
    • [キーを制限] をクリックして、詳細設定を更新し、API キーの使用を制限します。詳細については、API キーの制限を適用するをご覧ください。

Chat API を呼び出すスクリプトを記述する

既存のスペースの spaceDetails フィールドを更新する方法は次のとおりです。

Python

  1. 作業ディレクトリに、chat_space_update_app.py という名前のファイルを作成します。
  2. chat_space_update_app.py に次のコードを含めます。

    from google.oauth2 import service_account
    from apiclient.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.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates the specified space description and guidelines.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the updated space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. コードで、次のように置き換えます。

    • API_KEY: ビルド用に作成した API キー サービス エンドポイントとして機能します。
    • SPACE はスペース名に置き換えます。スペース名は、Chat API の spaces.list メソッドまたはスペースの URL から取得できます。
  4. 作業ディレクトリでサンプルをビルドして実行します。

    python3 chat_space_update_app.py

Google Chat API は、更新を反映した Space リソースのインスタンスを返します。