คำแนะนำนี้จะอธิบายวิธีที่ผู้ดูแลระบบ Google Workspace สามารถใช้search()
method ในSpace
resource ของ 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 รุ่น Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat
- ตั้งค่าสภาพแวดล้อมโดยทำดังนี้
- สร้างโปรเจ็กต์ Google Cloud
- กำหนดค่าหน้าจอขอความยินยอม OAuth
- เปิดใช้และกําหนดค่า Google Chat API พร้อมตั้งชื่อ ไอคอน และคําอธิบายสําหรับแอป Chat
- ติดตั้ง ไลบรารีของไคลเอ็นต์ Google API สำหรับ Python
-
สร้างข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth สําหรับแอปพลิเคชันบนเดสก์ท็อป หากต้องการเรียกใช้ตัวอย่างในคู่มือนี้ ให้บันทึกข้อมูลเข้าสู่ระบบเป็นไฟล์ JSON ชื่อ
client_secrets.json
ลงในไดเรกทอรีในเครื่อง
- เลือกขอบเขตการให้สิทธิ์ที่รองรับการตรวจสอบสิทธิ์ผู้ใช้
- คุณต้องมีสิทธิ์ของผู้ดูแลระบบจัดการแชทและการสนทนาในพื้นที่ทำงานสำหรับองค์กร Google Workspace
เรียกใช้ Google Chat API ในฐานะผู้ดูแลระบบ
หากต้องการตรวจสอบสิทธิ์ในฐานะผู้ใช้ที่มีสิทธิ์ระดับผู้ดูแลระบบ คุณจะต้องส่งข้อมูลต่อไปนี้ในคำขอ
- ระบุขอบเขตการให้สิทธิ์ที่รองรับการใช้การตรวจสอบสิทธิ์ผู้ใช้ที่มีสิทธิ์ระดับผู้ดูแลระบบ
- ตั้งค่าช่อง
useAdminAccess
เป็นtrue
ส่วนนี้จะแสดงตัวอย่างการเรียกใช้ Chat API ในฐานะผู้ดูแลระบบดังต่อไปนี้
- ค้นหาพื้นที่ทำงานโดยการเรียกใช้เมธอด
search()
- ค้นหาและลบพื้นที่ทำงานที่ไม่ได้ใช้งานในองค์กรโดยเรียกใช้เมธอด
search()
เพื่อแสดงรายการพื้นที่ทำงานที่ไม่ได้ใช้งาน แล้วเรียกใช้เมธอดdelete()
เพื่อลบพื้นที่ทำงานเหล่านั้น
ค้นหาพื้นที่ทำงานในองค์กร
ตัวอย่างนี้อธิบายวิธีที่ผู้ดูแลระบบ 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
- ข้อความค้นหาเพิ่มเติมอย่างน้อย 1 รายการ (ไม่บังคับ) เพื่อกรองการค้นหาพื้นที่ทำงานเพิ่มเติม เช่น คีย์เวิร์ดในชื่อที่แสดง (
displayName
) วันที่สร้าง (createTime
) หรือตามกิจกรรมในพื้นที่ทำงาน (lastActiveTime
)
โค้ดต่อไปนี้แสดงตัวอย่างวิธีใช้สิทธิ์ของผู้ดูแลระบบเพื่อค้นหาพื้นที่ทำงานที่มีชื่อที่แสดงซึ่งมี "สวัสดี" และ "โลก" ผสมกัน
Python
- ในไดเรกทอรีทํางาน ให้สร้างไฟล์ชื่อ
search_spaces_for_hello_world.py
ใส่รหัสต่อไปนี้ใน
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)
ในไดเรกทอรีทํางาน ให้สร้างและเรียกใช้ตัวอย่าง ดังนี้
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
ในไดเรกทอรีทํางาน ให้สร้างไฟล์ชื่อ
find_and_delete_inactive_spaces.py
ใส่รหัสต่อไปนี้ใน
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()
ในโค้ด ให้แทนที่
INACTIVE_DATE
ด้วยวันที่และเวลาในรูปแบบ YYYY-MM-DDTHH:MM:SS+HH:MM เช่น "2024-06-01T00:00:00+00:00"ในไดเรกทอรีทํางาน ให้สร้างและเรียกใช้ตัวอย่าง ดังนี้
python3 find_and_delete_inactive_spaces.py
หัวข้อที่เกี่ยวข้อง
- ลบพื้นที่ทำงาน
- แสดงรายชื่อสมาชิกในพื้นที่ทำงาน
- จัดการพื้นที่ทำงานใน Chat ในฐานะผู้ดูแลระบบ Google Workspace
spaces.search()
method