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

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

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

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

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

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

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

پیش نیازها

پایتون

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

به عنوان سرپرست با Google Chat API تماس بگیرید

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

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

این بخش نمونه‌های زیر را از فراخوانی Chat API به‌عنوان سرپرست نشان می‌دهد:

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

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

برای فراخوانی متد search() با احراز هویت کاربر و امتیازات مدیر ، باید موارد زیر را در درخواست مشخص کنید:

  • محدوده مجوز 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(
        'client_secrets.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 آنها را حذف کنند.

فضاهای غیرفعال Google Chat - فضاهایی که دیگر به طور فعال استفاده نمی شوند - می توانند فضای ذخیره سازی ارزشمندی را اشغال کنند و در رابط کاربری به هم ریختگی ایجاد کنند. با استفاده از متد 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(
          'client_secrets.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