Bu kılavuzda, Google Workspace yöneticisinin kuruluşundaki adlandırılmış alanları yönetmek ve yönetim görevlerini gerçekleştirmek için Google Chat API'nin search()
yöntemini Space
kaynağında nasıl kullanabileceği açıklanmaktadır.
Google Workspace yöneticisi olarak, Chat API'yi yalnızca SPACE
'nin 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ı 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ışma yapabileceği bir yeri temsil eder. Birkaç tür alan vardır:
- Doğrudan mesajlar (DM), iki kullanıcı veya bir kullanıcı ile bir Chat uygulaması arasındaki görüşmelerdir.
- Grup sohbetleri, üç veya daha fazla kullanıcı ile sohbet 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 şekillerde kullanabilirsiniz:
- Kuruluşun alanlarını denetleme.
search()
yöntemini kullanarak bir kuruluştaki tüm alanların listesini, her alanın ayarları ve meta verileri (ör. oluşturma tarihi, son etkinlik tarihi, üye sayısı, geçmiş ayarının durumu ve harici konukları davet etme özelliği) hakkında ayrıntılı bilgilerle birlikte alabilirsiniz. - Etkin olmayan alanları bulup silme
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 alan listesini dışa aktarma
search()
yöntemini kullanarakquery
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 iletişime geçin.
search()
yöntemini kullanarak bir kuruluştaki tüm alanların listesini alabilir, ardındanmembers.list()
yöntemini kullanarak yönetici olan tüm alan üyelerinin listesini alabilirsiniz. - Belirlenmiş 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.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Python Google API İstemci Kitaplığı'nı yükleyin.
- Masaüstü uygulaması için
OAuth istemci kimliği kimlik bilgileri oluşturun. Bu kılavuzdaki örneği çalıştırmak için kimlik bilgilerini
credentials.json
adlı bir JSON dosyası olarak yerel dizininize kaydedin.
- Kullanıcı kimlik doğrulamasını destekleyen bir yetkilendirme kapsamı seçin.
- Google Workspace kuruluşunuz için Chat ve Alanlar görüşmelerini yönetme yönetici ayrıcalıklarına sahip olmanız gerekir.
Google Chat API'sini yönetici olarak çağırma
Yönetici ayrıcalıklarına sahip bir kullanıcı olarak kimliğinizi doğrulamak için isteğinizde aşağıdakileri iletmeniz gerekir:
- Kullanıcı kimlik doğrulamasını yönetici ayrıcalıklarıyla kullanmayı destekleyen bir yetkilendirme kapsamı belirtin.
useAdminAccess
alanınıtrue
olarak ayarlayın.
Bu bölümde, Chat API'nin yönetici olarak çağrılmasıyla ilgili aşağıdaki örnekler gösterilmektedir:
search()
yöntemini çağırarak alan arama.search()
yöntemini çağırarak kuruluşunuzdaki etkin olmayan alanları bulup silin. Bu yöntem, etkin olmayan alanların listesini döndürür. Ardındandelete()
yöntemini çağırarak bu alanları silebilirsiniz.
Kuruluşunuzdaki alanları 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 arama işlemini nasıl yapabileceği 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
'dir.spaceType = "SPACE"
: Zorunludur ve desteklenen tek değerSPACE
'dir.- İ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şturma tarihi (createTime
) veya alan etkinliğine göre (lastActiveTime
)).
Aşağıdaki kodda, yönetici ayrıcalıklarını kullanarak "Hello" ve "World" kelimelerini herhangi bir kombinasyonla içeren görünen ada sahip alanları arama örneği gösterilmektedir:
Python
- Çalışma dizininizde
search_spaces_for_hello_world.py
adlı bir dosya oluşturun. search_spaces_for_hello_world.py
'ya 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( '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)
Çalışma dizininizde örneği oluşturun ve ç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 bulabileceği ve ardından delete()
yöntemini useAdminAccess
parametresiyle kullanarak bunları nasıl silebileceği açıklanmaktadır.
Etkin olmayan Google Chat alanları (artık etkin olarak kullanılmayanlar) değerli depolama alanını kaplayabilir ve kullanıcı arayüzünde dağınıklığa neden olabilir. search()
yöntemini kullanarak yöneticiler, belirli bir tarih ve saatten (ör. iki ay önce) 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ı ve yönetici ayrıcalıkları ile silmek için, isteklerinizde aşağıdakileri iletin:
- 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 tarih 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
'dir.spaceType = "SPACE"
: Zorunludur ve desteklenen tek değerSPACE
'dir.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.delete()
kaynağındaSpaces
yöntemini çağırın.useAdminAccess=true
değerini belirtin.
Aşağıdaki kodda, yönetici ayrıcalıklarını kullanarak etkin olmayan alanları arama ve silme örneği gösterilmektedir:
Python
Çalışma dizininizde
find_and_delete_inactive_spaces.py
adlı bir dosya oluşturun.find_and_delete_inactive_spaces.py
'ya 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( '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()
Koddaki
INACTIVE_DATE
yerine YYYY-AA-GGTSS:DD:SS+SS:DD biçiminde bir tarih ve saat girin. Örneğin, "2024-06-01T00:00:00+00:00".Çalışma dizininizde örneği oluşturun ve çalıştırın:
python3 find_and_delete_inactive_spaces.py
İlgili konular
- Alanları silme
- Alandaki üyeleri listeleme
- Google Workspace yöneticisi olarak Chat alanlarını yönetme
spaces.search()
yöntemi