ค้นหาและจัดการพื้นที่ใน Google Chat สําหรับองค์กร Google Workspace ของคุณ

คู่มือนี้อธิบายวิธีที่ผู้ดูแลระบบ Google Workspace สามารถใช้search()เมธอดในSpaceทรัพยากรของ Google Chat API เพื่อจัดการพื้นที่ทำงานที่มีชื่อทั่วทั้งองค์กรและดำเนินงานด้านการดูแลระบบ

ในฐานะผู้ดูแลระบบ Google Workspace คุณจะใช้ได้เฉพาะ Chat API เพื่อจัดการพื้นที่ทำงานที่มีชื่อ ซึ่งกำหนดเป็นSpaceType ของ SPACE พื้นที่ทำงานที่มีชื่อคือพื้นที่ถาวรที่ผู้คนใช้ส่งข้อความ แชร์ไฟล์ และทำงานร่วมกัน คุณไม่สามารถใช้ Chat API เพื่อจัดการ ข้อความส่วนตัว (DM) หรือแชทกลุ่ม

Spaceทรัพยากร แสดงถึงสถานที่ที่ผู้ใช้และแอป Chat สามารถส่งข้อความ แชร์ไฟล์ และทำงานร่วมกันได้ พื้นที่ทำงานมีหลายประเภท ดังนี้

  • ข้อความส่วนตัว (DM) คือการสนทนาระหว่างผู้ใช้ 2 คนหรือผู้ใช้กับแอป Chat
  • แชทกลุ่มคือการสนทนาระหว่างผู้ใช้ตั้งแต่ 3 คนขึ้นไปและแอป Chat
  • พื้นที่ทำงานที่มีชื่อคือพื้นที่ถาวรที่ผู้คนใช้ส่งข้อความ แชร์ไฟล์ และทำงานร่วมกัน

ในฐานะผู้ดูแลระบบ Google Workspace คุณสามารถใช้ Chat API เพื่อ ค้นหาและจัดการพื้นที่ทำงานที่มีชื่อในองค์กรได้ด้วยวิธีต่อไปนี้

  • ตรวจสอบพื้นที่ทำงานในองค์กร การใช้เมธอด search() จะช่วยให้คุณดึงข้อมูลรายการพื้นที่ทั้งหมดในองค์กร พร้อมข้อมูลโดยละเอียดเกี่ยวกับการตั้งค่าและข้อมูลเมตาของแต่ละพื้นที่ เช่น วันที่สร้าง วันที่ทำกิจกรรมล่าสุด จำนวนสมาชิก สถานะของการตั้งค่า ประวัติ และความสามารถในการเชิญแขกภายนอก
  • ค้นหาและลบพื้นที่ทำงานที่ไม่ได้ใช้งาน การใช้เมธอด search() จะช่วยให้คุณค้นหาพื้นที่ทำงานที่ไม่มีการใช้งานตั้งแต่ วันที่และเวลาที่ระบุ แล้วลบพื้นที่ทำงานเหล่านั้นได้ ดูรายละเอียดเพิ่มเติมและ โค้ดตัวอย่างได้ที่ค้นหาและลบพื้นที่ที่ไม่มีการใช้งาน
  • ส่งออกรายการพื้นที่ทำงานตามเกณฑ์การค้นหา การใช้เมธอด search() คุณสามารถดึงข้อมูลรายการพื้นที่ที่ตรงตามเกณฑ์ ที่ระบุใน query และส่งออกผลลัพธ์ไปยังไฟล์ CSV เพื่อทำการวิเคราะห์ได้
  • ค้นหาและติดต่อผู้จัดการพื้นที่ทำงาน การใช้เมธอด search() คุณจะดึงข้อมูลรายการสเปซทั้งหมดในองค์กรได้ จากนั้นใช้เมธอด members.list() เพื่อดึงข้อมูลรายการสมาชิกในสเปซทั้งหมดที่เป็นผู้จัดการ
  • ค้นหาพื้นที่ทำงานที่ไม่มีผู้จัดการที่ได้รับมอบหมาย การใช้เมธอด search() คุณจะดึงข้อมูลรายการพื้นที่ทั้งหมดในองค์กรได้ จากนั้นใช้เมธอด members.list() เพื่อดึงข้อมูลรายการพื้นที่ที่ไม่มี ผู้จัดการ

ข้อกำหนดเบื้องต้น

Python

  • บัญชี Google Workspace สำหรับธุรกิจหรือองค์กร ที่มีสิทธิ์เข้าถึง Google Chat
  • คุณต้องมีสิทธิ์ของผู้ดูแลระบบในการจัดการแชทและการสนทนาในพื้นที่ทำงาน สำหรับองค์กร Google Workspace

เรียกใช้ Google Chat API ในฐานะผู้ดูแลระบบ

หากต้องการตรวจสอบสิทธิ์ในฐานะผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบ คุณต้องส่งข้อมูลต่อไปนี้ในคำขอ

  • ระบุขอบเขตการให้สิทธิ์ ที่รองรับการใช้การตรวจสอบสิทธิ์ผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบ
  • ตั้งค่าฟิลด์ useAdminAccess เป็น true

ส่วนนี้จะแสดงตัวอย่างการเรียกใช้ Chat API ในฐานะผู้ดูแลระบบดังนี้

ค้นหาพื้นที่ทำงานทั่วทั้งองค์กร

ตัวอย่างนี้อธิบายวิธีที่ผู้ดูแลระบบ Google Workspace ใช้ search() method ในSpace resource ของ Chat API เพื่อค้นหา พื้นที่ในองค์กรตามเกณฑ์ที่ระบุ

หากต้องการเรียกใช้เมธอด search() โดยใช้ การตรวจสอบสิทธิ์ผู้ใช้และ สิทธิ์ระดับผู้ดูแลระบบ คุณต้องระบุข้อมูลต่อไปนี้ในคำขอ

  • ระบุขอบเขตการให้สิทธิ์ chat.admin.spaces หรือ chat.admin.spaces.readonly
  • ระบุ useAdminAccess=true
  • ระบุพารามิเตอร์การค้นหา query เพื่อกรองผลลัพธ์ ดังนี้
    • customer = "customers/my_customer" - จำเป็นและค่าที่รองรับเพียงค่าเดียวคือ customers/my_customer
    • spaceType = "SPACE" - จำเป็นและค่าที่รองรับเพียงค่าเดียวคือ SPACE
    • ไม่บังคับ: คำค้นหาเพิ่มเติมอย่างน้อย 1 รายการเพื่อกรองการค้นหาพื้นที่ทำงานเพิ่มเติม เช่น คีย์เวิร์ดในชื่อที่แสดง (displayName) วันที่สร้าง (createTime) หรืออิงตามกิจกรรมในพื้นที่ทำงาน (lastActiveTime)

โค้ดต่อไปนี้แสดงตัวอย่างวิธีใช้สิทธิ์ของผู้ดูแลระบบเพื่อ ค้นหาพื้นที่ทำงานที่มีชื่อที่แสดงซึ่งมีคำว่า "Hello" และ "World" ใน การผสมผสานใดก็ได้

Python

  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

พื้นที่ใน Google Chat ที่ไม่ได้ใช้งาน ซึ่งก็คือพื้นที่ที่ไม่มีการใช้งานอีกต่อไป อาจ ใช้พื้นที่เก็บข้อมูลที่มีค่าและทำให้เกิดความรกในอินเทอร์เฟซผู้ใช้ เมื่อใช้search()วิธีนี้ ผู้ดูแลระบบจะค้นหาพื้นที่ที่ไม่มีการใช้งาน ตั้งแต่วันที่และเวลาที่ระบุได้ เช่น 2 เดือนที่ผ่านมา หลังจากแสดงรายการ พื้นที่ทำงานแล้ว ผู้ดูแลระบบจะดำเนินการกับพื้นที่ทำงานเหล่านั้นได้ เช่น อัปเดตหรือลบ

หากต้องการค้นหารายการพื้นที่ที่ไม่มีการใช้งานแล้วลบออกด้วย การตรวจสอบสิทธิ์ผู้ใช้และ สิทธิ์ของผู้ดูแลระบบ ให้ส่งข้อมูลต่อไปนี้ในคำขอ

  • หากต้องการค้นหาพื้นที่ทำงานที่ไม่ได้ใช้งาน ให้ระบุข้อมูลต่อไปนี้
    • ระบุขอบเขตการให้สิทธิ์ 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

โค้ดต่อไปนี้แสดงตัวอย่างวิธีค้นหาพื้นที่ที่ไม่มีการใช้งานและลบพื้นที่เหล่านั้นโดยใช้สิทธิ์ของผู้ดูแลระบบ

Python

  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