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

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

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

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

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

پیش نیازها

Node.js

پایتون

جاوا

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

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

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

  • محدوده مجوز chat.spaces را مشخص کنید.
  • متد UpdateSpace() را فراخوانی کنید. در درخواست خود، فیلد name فضا، فیلد 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: 'displayName'
  };

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

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

main().catch(console.error);

پایتون

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 = 'display_name'
    )

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

Google Chat API نمونه‌ای از Space را برمی‌گرداند که به‌روزرسانی‌ها را منعکس می‌کند.

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

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

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

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

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

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

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

برای به‌روزرسانی فضای موجود در Google Chat با تأیید اعتبار برنامه ، موارد زیر را در درخواست خود ارسال کنید:

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

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

یک کلید API ایجاد کنید

برای فراخوانی یک روش API پیش‌نمایش برنامه‌نویس، باید از یک نسخه پیش‌نمایش برنامه‌نویس غیرعمومی سند کشف API استفاده کنید. برای احراز هویت درخواست، باید یک کلید API ارسال کنید.

برای ایجاد کلید API، پروژه Google Cloud برنامه خود را باز کنید و کارهای زیر را انجام دهید:

  1. در کنسول Google Cloud، به منو > APIs & Services > Credentials بروید.

    به Credentials بروید

  2. روی ایجاد اعتبارنامه > کلید API کلیک کنید.
  3. کلید API جدید شما نمایش داده می شود.
    • روی Copy کلیک کنید تا کلید API خود را برای استفاده در کد برنامه خود کپی کنید. کلید API را می‌توانید در بخش «کلیدهای API» اعتبار پروژه‌تان پیدا کنید.
    • برای به‌روزرسانی تنظیمات پیشرفته و محدود کردن استفاده از کلید API، روی Restrict key کلیک کنید. برای جزئیات بیشتر، به اعمال محدودیت‌های کلید API مراجعه کنید.

اسکریپتی بنویسید که 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, 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 که برای ساختن نقطه پایانی سرویس برای Chat API ایجاد کردید.
    • SPACE با نام فضایی، که می توانید از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.
  4. در پوشه کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_space_update_app.py

Google Chat API نمونه‌ای از منبع Space را برمی‌گرداند که به‌روزرسانی‌ها را منعکس می‌کند.