Bu kılavuzda, Google Workspace yöneticilerinin kuruluşlarındaki adlandırılmış alanları yönetmek ve yönetim görevlerini gerçekleştirmek için Google Chat API'nin Space
kaynağındaki search()
yöntemini nasıl kullanabileceği açıklanmaktadır.
Google Workspace yöneticisi olarak Chat API'yi yalnızca SPACE
'ın SpaceType
olarak tanımlanan adlandırılmış alanlarını yönetmek için kullanabilirsiniz. Adlandırılmış alanlar, kullanıcıların mesaj gönderdiği, dosya paylaştığı ve ortak çalıştığı kalıcı yerlerdir. Doğrudan mesajları (DM'ler) veya grup sohbetlerini yönetmek için Chat API'yi kullanamazsınız.
Space
kaynağı, kullanıcıların ve Chat uygulamalarının mesaj gönderebileceği, dosya paylaşabileceği ve ortak çalışabileceği bir yeri temsil eder. Birkaç alan türü vardır:
- Doğrudan mesajlar (DM'ler), iki kullanıcı veya bir kullanıcı ile Chat uygulaması arasındaki görüşmelerdir.
- Grup sohbetleri, üç veya daha fazla kullanıcı ile Chat uygulamaları arasındaki görüşmelerdir.
- Adlandırılmış alanlar, kullanıcıların mesaj gönderdiği, dosya paylaştığı ve ortak çalıştığı kalıcı yerlerdir.
Google Workspace yöneticisi olarak, kuruluşunuzdaki adlandırılmış alanları aramak ve yönetmek için Chat API'yi aşağıdaki yöntemlerle kullanabilirsiniz:
- Kuruluştaki alanları denetleyin.
search()
yöntemini kullanarak, her alanın ayarları ve meta verileri (ör. oluşturulma tarihi, son etkinlik tarihi, üye sayısı, geçmiş ayarı durumu ve harici konuk davet etme özelliği) hakkında ayrıntılı bilgiler içeren bir kuruluştaki tüm alanların listesini alabilirsiniz. - Etkin olmayan alanları bulup silebilirsiniz.
search()
yöntemini kullanarak, belirtilen tarih ve saatten beri kullanılmayan alanları bulup silebilirsiniz. Daha fazla bilgi ve örnek kod için Etkin olmayan alanları bulma ve silme başlıklı makaleyi inceleyin. - Arama ölçütlerine göre bir alan listesi dışa aktarma
search()
yöntemini kullanarak,query
içinde belirtilen ölçütleri karşılayan alanların listesini alabilir ve sonuçları analiz için bir CSV dosyasına aktarabilirsiniz. - Alan yöneticilerini bulup onlarla iletişime geçin.
search()
yöntemini kullanarak bir kuruluştaki tüm alanların listesini alabilir, ardından yönetici olan tüm alan üyelerinin listesini almak içinmembers.list()
yöntemini kullanabilirsiniz. - Atanmış yöneticisi olmayan alanları bulma
search()
yöntemini kullanarak bir kuruluştaki tüm alanların listesini alabilir, ardındanmembers.list()
yöntemini kullanarak yöneticisi olmayan alanların listesini alabilirsiniz.
Ön koşullar
Python
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth izin ekranını yapılandırın.
- Chat uygulamanız için bir ad, simge ve açıklamayla Google Chat API'yi etkinleştirip yapılandırın.
- Python Google API İstemci Kitaplığı'nı yükleyin.
- Masaüstü uygulaması için
OAuth istemci kimliği kimlik bilgileri oluşturun. Bu kılavuzda yer alan örneği çalıştırmak için kimlik bilgilerini yerel dizininize
client_secrets.json
adlı bir JSON dosyası olarak kaydedin.
- Kullanıcı kimlik doğrulamasını destekleyen bir yetkilendirme kapsamı seçin.
- Google Workspace kuruluşunuz için Chat ve Alanlar görüşmesini yönetme yönetici ayrıcalıklarına sahip olmanız gerekir.
Google Chat API'yi yönetici olarak çağırma
Yönetici ayrıcalıklarına sahip bir kullanıcı olarak kimlik doğrulamak için isteğinizde aşağıdakileri iletmeniz gerekir:
- Kullanıcı kimlik doğrulamasının yönetici ayrıcalıklarıyla kullanılmasını destekleyen bir yetkilendirme kapsamı belirtin.
useAdminAccess
alanınıtrue
olarak ayarlayın.
Bu bölümde, Chat API'yi yönetici olarak çağırmayla ilgili aşağıdaki örnekler gösterilmektedir:
search()
yöntemini çağırarak alan arayın.- Etkin olmayan alanların listesini döndürmek için
search()
yöntemini, ardından bu alanları silmek içindelete()
yöntemini çağırarak kuruluşunuzdaki etkin olmayan alanları bulup silin.
Kuruluş genelinde alan arama
Bu örnekte, Google Workspace yöneticilerinin Chat API'nin Space
kaynağındaki search()
yöntemini kullanarak kuruluş genelinde belirtilen ölçütlere göre alan araması yapmaları açıklanmaktadır.
search()
yöntemini kullanıcı kimlik doğrulaması ve yönetici ayrıcalıkları ile çağırmak için istekte aşağıdakileri belirtmeniz gerekir:
chat.admin.spaces
veyachat.admin.spaces.readonly
yetkilendirme kapsamını belirtin.useAdminAccess=true
değerini belirtin.- Sonuçları filtrelemek için arama
query
parametrelerini belirtin:customer = "customers/my_customer"
: Zorunludur ve desteklenen tek değercustomers/my_customer
'dur.spaceType = "SPACE"
: Zorunludur ve yalnızcaSPACE
değeri desteklenir.- İsteğe bağlı olarak, alan aramanızı daha da filtrelemek için bir veya daha fazla ek sorgu (ör. görünen adlardaki anahtar kelimeler (
displayName
), oluşturulma tarihi (createTime
) veya alan etkinliğine göre (lastActiveTime
)).
Aşağıdaki kodda, "Merhaba" ve "Dünya" kelimelerini herhangi bir kombinasyonda içeren görünen ada sahip alanları aramak için yönetici ayrıcalıklarının nasıl kullanılacağı gösterilmektedir:
Python
- Çalışma dizininizde
search_spaces_for_hello_world.py
adlı bir dosya oluşturun. search_spaces_for_hello_world.py
dosyasına aşağıdaki kodu ekleyin: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)
Çalışma dizininizde örneği derleyip çalıştırın:
python3 search_spaces_for_hello_world.py
Etkin olmayan alanları bulma ve silme
Bu örnekte, Google Workspace yöneticilerinin Chat API'nin Space
kaynağında search()
yöntemini kullanarak etkin olmayan alanları nasıl bulabilecekleri ve ardından useAdminAccess
parametresini içeren delete()
yöntemini kullanarak bu alanları nasıl silebilecekleri açıklanmaktadır.
Etkin olmayan Google Chat alanları (artık etkin olarak kullanılmayan alanlar) değerli depolama alanı kaplar ve kullanıcı arayüzünde dağınıklığa neden olabilir. Yöneticiler, search()
yöntemini kullanarak iki ay önce gibi belirli bir tarih ve saatten beri kullanılmayan alanları bulabilir. Alan listesi numaralandırıldıktan sonra yöneticiler bu alanlarla ilgili işlem yapabilir (ör. güncelleme veya silme).
Etkin olmayan alanların listesini aramak ve ardından kullanıcı kimlik doğrulaması ile yönetici ayrıcalıkları kullanarak bu alanları silmek için isteklerinize aşağıdakileri ekleyin:
- Etkin olmayan alanları aramak için aşağıdakileri belirtin:
chat.admin.spaces
veyachat.admin.spaces.readonly
yetkilendirme kapsamını belirtin.Spaces
kaynağındasearch()
yöntemini çağırın.INACTIVE_SPACE_DEADLINE
değerini, döndürülecek alanları belirleyen son etkinliğin tarihi ve saatine ayarlayın.useAdminAccess=true
değerini belirtin.- Sonuçları filtrelemek için arama
query
parametrelerini belirtin:customer = "customers/my_customer"
: Zorunludur ve desteklenen tek değercustomers/my_customer
'tır.spaceType = "SPACE"
: Zorunludur ve yalnızcaSPACE
değeri desteklenir.lastActiveTime
: İsteğinizi yalnızca etkin olmayan alanları döndürecek şekilde filtrelemek içinlastActiveTime
- Etkin olmayan alanları arama sonuçlarından silmek için aşağıdakileri belirtin:
chat.admin.delete
yetkilendirme kapsamını belirtin.Spaces
kaynağındadelete()
yöntemini çağırın.useAdminAccess=true
değerini belirtin.
Aşağıdaki kodda, etkin olmayan alanların nasıl aranacağı ve yönetici ayrıcalıkları kullanılarak nasıl silineceği gösterilmektedir:
Python
Çalışma dizininizde
find_and_delete_inactive_spaces.py
adlı bir dosya oluşturun.find_and_delete_inactive_spaces.py
dosyasına aşağıdaki kodu ekleyin: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()
Kodda
INACTIVE_DATE
değerini YYYY-AA-GGTTSS:DD:SS+SS:DD biçiminde bir tarih ve saatle değiştirin. Örneğin, "2024-06-01T00:00:00+00:00".Çalışma dizininizde örneği derleyip çalıştırın:
python3 find_and_delete_inactive_spaces.py
İlgili konular
- Alanları silme
- Alandaki üyeleri listeleme
- Chat alanlarını Google Workspace yöneticisi olarak yönetme
spaces.search()
yöntemi