فضاهای Google Chat را برای سازمان Google Workspace خود جستجو و مدیریت کنید

این راهنما توضیح می‌دهد که چگونه یک مدیر Google Workspace می‌تواند از متد search() روی یک منبع Space از Google Chat API برای مدیریت فضاهای نامگذاری شده در سراسر سازمان خود و انجام وظایف مدیریتی استفاده کند.

به عنوان مدیر Google Workspace، شما فقط می‌توانید از Chat API برای مدیریت فضاهای نامگذاری شده استفاده کنید که به عنوان SpaceType از SPACE تعریف می‌شوند. فضاهای نامگذاری شده مکان‌های پایداری هستند که افراد در آنها پیام ارسال می‌کنند، فایل‌ها را به اشتراک می‌گذارند و همکاری می‌کنند. شما نمی‌توانید از Chat API برای مدیریت پیام‌های مستقیم (DM) یا چت‌های گروهی استفاده کنید.

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

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

به عنوان مدیر Google Workspace، می‌توانید از Chat API برای جستجو و مدیریت فضاهای نامگذاری شده در سازمان خود به روش‌های زیر استفاده کنید:

  • فضاهای حسابرسی در سازمان. با استفاده از متد search() ، می‌توانید فهرستی از تمام فضاهای یک سازمان را به همراه اطلاعات دقیقی در مورد تنظیمات و فراداده‌های هر فضا مانند تاریخ ایجاد، تاریخ آخرین فعالیت، تعداد اعضا، وضعیت تنظیمات تاریخچه و قابلیت دعوت از مهمانان خارجی بازیابی کنید.
  • پیدا کردن و حذف فضاهای غیرفعال. با استفاده از متد search() ، می‌توانید فضاهایی را که از یک تاریخ و زمان مشخص استفاده نشده‌اند پیدا کرده و سپس آنها را حذف کنید. برای جزئیات بیشتر و نمونه کد، به بخش «یافتن و حذف فضاهای غیرفعال» مراجعه کنید.
  • فهرستی از فضاها را بر اساس معیارهای جستجو صادر کنید. با استفاده از متد search() ، می‌توانید فهرستی از فضاهایی را که معیارهای مشخص شده در query را برآورده می‌کنند، بازیابی کنید و نتایج را برای تجزیه و تحلیل به یک فایل CSV صادر کنید.
  • Find and contact space managers. Using the search() method, you can retrieve a list of all spaces in an organization, then use the members.list() method to retrieve a list of all space members that are managers.
  • فضاهایی را پیدا کنید که مدیر تعیین‌شده ندارند. با استفاده از متد search() ، می‌توانید فهرستی از تمام فضاهای موجود در یک سازمان را بازیابی کنید، سپس از متد members.list() برای بازیابی فهرستی از فضاهایی که هیچ مدیری ندارند استفاده کنید.

پیش‌نیازها

پایتون

  • شما باید برای سازمان Google Workspace خود، امتیازات مدیریتی مدیریت گفتگو و Spaces را داشته باشید.

به عنوان مدیر، API چت گوگل را فراخوانی کنید

برای احراز هویت به عنوان کاربری با امتیازات مدیر ، باید موارد زیر را در درخواست خود ارسال کنید:

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

این بخش مثال‌های زیر از فراخوانی Chat API به عنوان مدیر را نشان می‌دهد:

فضاهای خالی را در سراسر سازمان خود جستجو کنید

این مثال توضیح می‌دهد که چگونه مدیران Google Workspace می‌توانند از متد search() در منبع Space از Chat API برای جستجوی فضاهای خالی در سراسر یک سازمان بر اساس معیارهای مشخص شده استفاده کنند.

To call the search() method with user authentication and administrator privileges , you must specify the following in the request:

  • دامنه مجوز chat.admin.spaces یا chat.admin.spaces.readonly را مشخص کنید.
  • مقدار useAdminAccess=true را مشخص کنید.
  • پارامترهای query جستجو را برای فیلتر کردن نتایج مشخص کنید:
    • customer = "customers/my_customer" - الزامی است و تنها مقدار پشتیبانی شده customers/my_customer است.
    • spaceType = "SPACE" - الزامی است و تنها مقدار پشتیبانی شده SPACE است.
    • به صورت اختیاری، یک یا چند پرس‌وجوی اضافی برای فیلتر کردن بیشتر جستجوی فضا، مانند کلمات کلیدی در نام‌های نمایشی ( displayName )، تاریخ ایجاد ( createTime ) یا بر اساس فعالیت فضا ( lastActiveTime ).

کد زیر مثالی از نحوه استفاده از امتیازات مدیر برای جستجوی فضاهایی با نام نمایشی حاوی "Hello" و "World" به هر ترکیبی را نشان می‌دهد:

پایتون

  1. در دایرکتوری کاری خود، فایلی با نام search_spaces_for_hello_world.py ایجاد کنید.
  2. کد زیر را در search_spaces_for_hello_world.py قرار دهید:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    SCOPES = [
      'https://www.googleapis.com/auth/chat.admin.spaces.readonly',
    ]
    
    def main():
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
        'credentials.json',
        SCOPES,
    )
    creds = flow.run_local_server()
    
    # Build a service endpoint for Chat API.
    chat = build('chat', 'v1', credentials=creds)
    
    spaces = []
    page_token = ''
    
    # Search for all spaces.
    while True:
      result = (
          chat.spaces()
          .search(
              useAdminAccess=True,
              query=(
                'customer = "customers/my_customer"'
                'AND spaceType = "SPACE"'
                'AND displayName:"Hello World"'
                )
    pageToken=page_token,
          )
          .execute()
      )
      if 'spaces' not in result:
        print('No spaces found named Hello World.')
        return
      spaces.extend(result['spaces'])
      if 'nextPageToken' in result:
        page_token = result['nextPageToken']
      else:
        break
    
    print(str(len(spaces)) + ' spaces found:')
    # Prints the list of spaces.
    print(spaces)
    
  3. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 search_spaces_for_hello_world.py

فضاهای غیرفعال را پیدا و حذف کنید

این مثال توضیح می‌دهد که چگونه مدیران Google Workspace می‌توانند از متد search() روی منبع Space از Chat API برای یافتن فضاهای غیرفعال استفاده کنند و سپس آنها را با استفاده از متد delete() به همراه پارامتر useAdminAccess حذف کنند.

فضاهای غیرفعال چت گوگل - فضاهایی که دیگر به طور فعال استفاده نمی‌شوند - می‌توانند فضای ذخیره‌سازی ارزشمندی را اشغال کرده و باعث ایجاد بی‌نظمی در رابط کاربری شوند. با استفاده از متد search() ، مدیران می‌توانند فضاهایی را که از یک تاریخ و زمان مشخص، مثلاً دو ماه پیش، استفاده نشده‌اند، پیدا کنند. پس از شمارش لیست فضاها، مدیران می‌توانند اقداماتی روی آنها انجام دهند، مانند به‌روزرسانی یا حذف آنها.

برای جستجوی لیستی از فضاهای غیرفعال و سپس حذف آنها با احراز هویت کاربر و امتیازات مدیر ، موارد زیر را در درخواست‌های خود وارد کنید:

  • برای جستجوی فضاهای غیرفعال، موارد زیر را مشخص کنید:
    • دامنه مجوز chat.admin.spaces یا chat.admin.spaces.readonly را مشخص کنید.
    • متد search() را روی منبع Spaces فراخوانی کنید.
    • مقدار INACTIVE_SPACE_DEADLINE را برابر با تاریخ و زمان آخرین فعالیتی قرار دهید که فاصله‌های خالی را برای برگرداندن تعیین می‌کند.
    • مقدار useAdminAccess=true را مشخص کنید.
    • پارامترهای query جستجو را برای فیلتر کردن نتایج مشخص کنید:
      • customer = "customers/my_customer" - الزامی است و تنها مقدار پشتیبانی شده customers/my_customer است.
      • spaceType = "SPACE" - الزامی است و تنها مقدار پشتیبانی شده SPACE است.
      • lastActiveTime - برای فیلتر کردن درخواست خود به منظور برگرداندن فقط فضاهای غیرفعال، lastActiveTime مشخص کنید.
  • برای حذف فضاهای غیرفعال از نتایج جستجو، موارد زیر را مشخص کنید:
    • دامنه مجوز chat.admin.delete را مشخص کنید.
    • متد delete() را روی منبع Spaces فراخوانی کنید.
    • مقدار useAdminAccess=true را مشخص کنید.

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

پایتون

  1. در دایرکتوری کاری خود، فایلی با نام find_and_delete_inactive_spaces.py ایجاد کنید.

  2. کد زیر را در find_and_delete_inactive_spaces.py قرار دهید:

    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    SCOPES = [
        'https://www.googleapis.com/auth/chat.admin.spaces.readonly',
        'https://www.googleapis.com/auth/chat.admin.delete',
    ]
    
    # Any spaces that have not been active since this time will be deleted.
    INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"'
    
    def main():
      # Authenticate with Google Workspace
      # and get user authorization.
      flow = InstalledAppFlow.from_client_secrets_file(
          'credentials.json',
          SCOPES,
      )
      creds = flow.run_local_server()
    
      # Build a service endpoint for Chat API.
      chat = build('chat', 'v1', credentials=creds)
    
      spaces = []
      page_token = ''
    
      # Search for all inactive spaces.
      while True:
        result = (
            chat.spaces()
            .search(
                useAdminAccess=True,
                query=(
                    'customer = "customers/my_customer" AND spaceType = "SPACE" AND'
                    ' lastActiveTime < '
                )
                + INACTIVE_SPACE_DEADLINE,
                pageToken=page_token,
            )
            .execute()
        )
        if 'spaces' not in result:
          print('No inactive spaces found.')
          return
        spaces.extend(result['spaces'])
        if 'nextPageToken' in result:
          page_token = result['nextPageToken']
        else:
          break
    
      print(str(len(spaces)) + ' inactive spaces found:')
      # Prints the list of inactive spaces.
      print(spaces)
    
      # Delete all inactive spaces.
      for space in spaces:
        (
            chat.spaces()
            .delete(
                useAdminAccess=True,
                name=space['name'],
            )
            .execute()
        )
        print(
            'Deleted space: '
            + space['displayName']
            + ', Resource Name: '
            + space['name']
        )
    
    if __name__ == '__main__':
      main()
    
  3. در کد، INACTIVE_DATE با تاریخ و زمان به شکل YYYY-MM-DDTHH:MM:SS+HH:MM جایگزین کنید. برای مثال، "2024-06-01T00:00:00+00:00".

  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 find_and_delete_inactive_spaces.py