Bu kılavuzda, Google Workspace kuruluşunda adlandırılmış alanları aramak için Google Chat API'nin search() yönteminin Space kaynağında nasıl kullanılacağı açıklanmaktadır.
Space Kaynak, 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öneticisiyseniz ve katılmadığınız özel alanlar da dahil olmak üzere kuruluşunuzdaki tüm alanlarda arama yapmak istiyorsanız yönetici ayrıcalıklarıyla (useAdminAccess=true) API'yi çağırmak için Google Workspace yöneticisi olarak alanları arama ve yönetme başlıklı makaleyi inceleyin.
Yönetici ayrıcalıkları olmadan kullanıcı kimlik doğrulaması olan alanları ararken yöntem, kimliği doğrulanmış kullanıcının erişebildiği adlandırılmış alanları (spaceType of SPACE) arar. Örneğin, kuruluşunda üyesi olduğu alanlar.
Ön koşullar
Node.js
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası 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.
- Node.js Cloud İ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.jsonadlı bir JSON dosyası olarak yerel dizininize kaydedin.
- Kullanıcı kimlik doğrulamasını destekleyen bir yetkilendirme kapsamı seçin.
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 kullanıcı rızası 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 Cloud İ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.jsonadlı bir JSON dosyası olarak yerel dizininize kaydedin.
- Kullanıcı kimlik doğrulamasını destekleyen bir yetkilendirme kapsamı seçin.
Java
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası 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.
- Java Cloud İ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.jsonadlı bir JSON dosyası olarak yerel dizininize kaydedin.
- Kullanıcı kimlik doğrulamasını destekleyen bir yetkilendirme kapsamı seçin.
Apps Komut Dosyası
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası 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.
- Bağımsız bir Apps Komut Dosyası projesi oluşturun ve Gelişmiş Chat Hizmeti'ni etkinleştirin.
- Kullanıcı kimlik doğrulamasını destekleyen bir yetkilendirme kapsamı seçin.
Kullanıcı kimlik doğrulamasıyla alanları arama
Google Chat'te yönetici ayrıcalıkları olmadan alan aramak için isteğinizde aşağıdakileri iletin:
- Kullanıcı kimlik doğrulaması ile
chat.spaces.readonlyveyachat.spacesyetkilendirme kapsamını belirtin. Spacekaynağındasearch()yöntemini çağırın.useAdminAccessdeğerinifalseolarak ayarlayın (veya parametreyi atlayın).- Sonuçları filtrelemek için arama
queryparametrelerini belirtin:spaceType = "SPACE":querybelirtildiğinde zorunludur ve desteklenen tek değerSPACE'dir.displayName:HAS(:) operatörünü kullanarak alanın görünen adına göre filtreleyin. Örneğin,displayName:"Project". Eşleştirilecek metin, jetonlara ayrılır ve her jeton, büyük/küçük harfe duyarlı olmadan ve bağımsız olarak, alanındisplayNameherhangi bir yerinde alt dize olarak önekle eşleştirilir. Not:useAdminAccessfalseolduğunda anlamlı sonuçlar almak için sorgunuzdadisplayNamegereklidir. Aksi takdirde yöntem boş bir yanıt döndürür.externalUserAllowed: İsteğe bağlı olarak, harici konuklara alanda izin verilip verilmediğine göre filtreleyin (trueveyafalse).
- İsteğe bağlı olarak, döndürülecek maksimum alan sayısını sınırlamak için
pageSize(1000'e kadar) veya sonuçların sonraki sayfalarını almak içinpageTokendeğerini belirtin. - İsteğe bağlı olarak, arama sonuçlarını sıralamak için
orderBydeğerini belirtin (createTime descveyarelevance desc). Not:relevance desc, Google Workspace Geliştirici Önizlemesi Programı aracılığıyla kullanılabilir.
Sorgudaki farklı alanlarda yalnızca AND operatörleri desteklenir. Örneğin: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true". displayName ve externalUserAllowed içinde, birden fazla ölçütle eşleşmek istiyorsanız OR operatörleri desteklenir.
Aşağıdaki örnekte, görünen adında "Proje" kelimesi geçen adlandırılmış alanlar aranmaktadır:
Node.js
/**
* This sample shows how to search for spaces without administrator privileges.
*
* It relies on the @google-apps/chat npm package.
*/
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
const {ChatServiceClient} = require('@google-apps/chat');
const {auth} = require('google-auth-library');
async function main() {
// Create a client
const chatClient = new ChatServiceClient({
authClient: await auth.getClient({
scopes: ['https://www.googleapis.com/auth/chat.spaces.readonly']
})
});
// Initialize request arguments.
// When useAdminAccess is false, spaceType and displayName are required in query.
const request = {
query: 'spaceType = "SPACE" AND displayName:"Project"',
useAdminAccess: false
};
// Call the API and iterate over the paginated response
const iterable = chatClient.searchSpacesAsync(request);
for await (const result of iterable) {
console.log('Found space:', result.space.displayName, result.space.name);
}
}
main().catch(console.error);
Python
"""
This sample shows how to search for spaces without administrator privileges.
"""
from google.apps import chat_v1
import google.auth
# Read the documentation for more details:
# https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
def search_spaces():
# Create a client
scopes = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
credentials, _ = google.auth.default(scopes=scopes)
client = chat_v1.ChatServiceClient(credentials=credentials)
# Initialize request arguments.
# When use_admin_access is False, space_type and display_name are required in query.
request = chat_v1.SearchSpacesRequest(
query='spaceType = "SPACE" AND displayName:"Project"',
use_admin_access=False
)
# Make the request and iterate over the paginated results.
page_result = client.search_spaces(request)
for result in page_result.results:
print(f"Found space: {result.space.display_name} ({result.space.name})")
if __name__ == "__main__":
search_spaces()
Java
/**
* This sample shows how to search for spaces without administrator privileges.
*/
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ChatServiceClient.SearchSpacesPagedResponse;
import com.google.chat.v1.SearchSpacesRequest;
import com.google.chat.v1.SearchSpaceResult;
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
public class SearchSpaces {
public static void main(String[] args) throws Exception {
// See https://github.com/googleworkspace/java-samples/blob/main/chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/AuthenticationUtils.java
// for an example of how to authenticate the request.
try (ChatServiceClient chatServiceClient = AuthenticationUtils.createClientWithUserCredentials(
ImmutableList.of("https://www.googleapis.com/auth/chat.spaces.readonly"))) {
SearchSpacesRequest request = SearchSpacesRequest.newBuilder()
.setQuery("spaceType = \"SPACE\" AND displayName:\"Project\"")
.setUseAdminAccess(false)
.build();
SearchSpacesPagedResponse response = chatServiceClient.searchSpaces(request);
for (SearchSpaceResult result : response.iterateAll()) {
System.out.printf("Found space: %s (%s)\n", result.space.getDisplayName(), result.space.getName());
}
}
}
}
Apps Komut Dosyası
/**
* This sample shows how to search for spaces without administrator privileges.
*/
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
function searchSpaces() {
try {
// Call the API
// When useAdminAccess is false, spaceType and displayName are required in query.
const response = Chat.Spaces.search({
query: 'spaceType = "SPACE" AND displayName:"Project"',
useAdminAccess: false
});
if (response.results && response.results.length > 0) {
response.results.forEach(result => {
console.log('Found space: %s (%s)', result.space.displayName, result.space.name);
});
} else {
console.log('No matching spaces found.');
}
} catch (err) {
console.log('Failed to search spaces: ' + err.message);
}
}
Chat API, sorguyla eşleşen ve çağıran kullanıcının erişebildiği sayfalandırılmış alan listesini döndürür.
İlgili konular
- Alan oluşturma
- Alan oluşturma
- Bir alan hakkında ayrıntılı bilgi edinme
- Alanları listeleme
- Alan güncelleme
- Alan silme
- Google Workspace yöneticisi olarak alanları arama ve yönetme