یک فضا را به روز کنید

این راهنما نحوه استفاده از متد patch() در منبع Space از API چت گوگل برای به‌روزرسانی یک فضا را توضیح می‌دهد. به‌روزرسانی یک فضا برای تغییر ویژگی‌های مربوط به یک فضا، مانند نام نمایشی قابل مشاهده برای کاربر، توضیحات و دستورالعمل‌های آن.

اگر شما مدیر Google Workspace هستید، می‌توانید متد patch() را برای به‌روزرسانی هر فضای موجود در سازمان Google Workspace خود فراخوانی کنید.

منبع Space مکانی را نشان می‌دهد که افراد و برنامه‌های چت می‌توانند در آن پیام ارسال کنند، فایل‌ها را به اشتراک بگذارند و با یکدیگر همکاری کنند. چندین نوع Space وجود دارد:

  • پیام‌های مستقیم (DM) مکالماتی بین دو کاربر یا یک کاربر و یک برنامه چت هستند.
  • چت‌های گروهی، مکالماتی بین سه یا چند کاربر و برنامه‌های چت هستند.
  • فضاهای نامگذاری شده مکان‌های پایداری هستند که افراد در آنها پیام می‌فرستند، فایل‌ها را به اشتراک می‌گذارند و با یکدیگر همکاری می‌کنند.

پیش‌نیازها

نود جی اس

پایتون

جاوا

اسکریپت برنامه‌ها

به‌روزرسانی یک فضا به عنوان کاربر

برای به‌روزرسانی فضای موجود در گوگل چت با احراز هویت کاربر ، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.spaces را مشخص کنید.
  • متد UpdateSpace() فراخوانی کنید. در درخواست خود، فیلد name فضا، فیلد updateMask با یک یا چند فیلد برای به‌روزرسانی، و یک body با اطلاعات فضای به‌روزرسانی‌شده را مشخص می‌کنید.

شما می‌توانید مواردی مانند نام نمایشی، نوع فضا، وضعیت تاریخچه و موارد دیگر را به‌روزرسانی کنید. برای مشاهده‌ی تمام فیلدهایی که می‌توانید به‌روزرسانی کنید، به مستندات مرجع مراجعه کنید.

در اینجا نحوه به‌روزرسانی فیلد displayName از یک فضای موجود آمده است:

نود جی اس

چت/کتابخانه‌های-مشتری/ابر/به‌روزرسانی-فضا-کاربر-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);
}

await main();

پایتون

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()

جاوا

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));
    }
  }
}

اسکریپت برنامه‌ها

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 ، شناسه (ID) فیلد name فضا را وارد کنید. می‌توانید شناسه را با فراخوانی متد ListSpaces() یا از طریق URL فضا به دست آورید.

API چت گوگل نمونه‌ای از Space را برمی‌گرداند که به‌روزرسانی‌ها را منعکس می‌کند.

به‌روزرسانی فضا به عنوان مدیر Google Workspace

اگر شما مدیر Google Workspace هستید، می‌توانید متد UpdateSpace() را برای به‌روزرسانی هر فضایی در سازمان‌دهی Google Workspace خود فراخوانی کنید.

برای فراخوانی این روش به عنوان مدیر Google Workspace، موارد زیر را انجام دهید:

  • با استفاده از احراز هویت کاربر، متد را فراخوانی کنید و یک محدوده مجوز مشخص کنید که از فراخوانی متد با استفاده از امتیازات مدیر پشتیبانی کند.
  • در درخواست خود، پارامتر query useAdminAccess را برابر با true قرار دهید.

برای اطلاعات و مثال‌های بیشتر، به مدیریت فضاهای چت گوگل به عنوان مدیر فضای کاری گوگل مراجعه کنید.

به‌روزرسانی یک فضا به عنوان برنامه چت

احراز هویت برنامه نیاز به تأیید یک‌باره مدیر دارد.

برای به‌روزرسانی فضای موجود در گوگل چت با احراز هویت برنامه ، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.app.spaces را مشخص کنید. با احراز هویت برنامه، فقط می‌توانید فضاهای ایجاد شده توسط برنامه‌های چت را به‌روزرسانی کنید.
  • متد patch را روی منبع Space فراخوانی کنید. در درخواست خود، فیلد name فضا، فیلد updateMask با یک یا چند فیلد برای به‌روزرسانی، و یک body با اطلاعات فضای به‌روزرسانی‌شده را مشخص می‌کنید.

شما می‌توانید مواردی مانند نام نمایشی، نوع فضا، وضعیت تاریخچه، تنظیمات مجوز و موارد دیگر را به‌روزرسانی کنید. برای مشاهده‌ی تمام فیلدهایی که می‌توانید به‌روزرسانی کنید، به مستندات مرجع مراجعه کنید.

اسکریپتی بنویسید که Chat API را فراخوانی کند

در اینجا نحوه به‌روزرسانی فیلد spaceDetails از یک فضای موجود آمده است:

پایتون

  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)
    
        # 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. در کد، موارد زیر را جایگزین کنید:

    • SPACE با نام فضا، که می‌توانید از متد spaces.list در Chat API یا از URL فضا به دست آورید.
  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_space_update_app.py

API چت گوگل نمونه‌ای از منبع Space را برمی‌گرداند که به‌روزرسانی‌ها را منعکس می‌کند.

محدودیت‌ها و ملاحظات