इस गाइड में, Google Chat API के
Space संसाधन पर
search() तरीके का इस्तेमाल करके, Google Workspace संगठन में नाम वाले स्पेस खोजने का तरीका बताया गया है.
`Space`
Space संसाधन
, एक ऐसी जगह होती है जहां लोग और Chat ऐप्लिकेशन, मैसेज भेज सकते हैं, फ़ाइलें शेयर कर सकते हैं, और मिलकर काम कर सकते हैं. स्पेस कई तरह के होते हैं:
- डायरेक्ट मैसेज (डीएम) दो उपयोगकर्ताओं या किसी उपयोगकर्ता और Chat ऐप्लिकेशन के बीच की बातचीत होती है.
- ग्रुप चैट, तीन या इससे ज़्यादा उपयोगकर्ताओं और Chat ऐप्लिकेशन के बीच की बातचीत होती है.
- नाम वाले स्पेस, ऐसी जगहें होती हैं जहां लोग मैसेज भेजते हैं, फ़ाइलें शेयर करते हैं, और मिलकर काम करते हैं. ये स्पेस हमेशा मौजूद रहते हैं.
अगर आपके पास Google Workspace एडमिन का खाता है और आपको अपने संगठन के सभी स्पेस में खोजना है, तो निजी स्पेस भी शामिल हैं. भले ही, आपने उनमें शामिल न हुए हों, तो Google Workspace एडमिन के तौर पर स्पेस खोजना और उन्हें मैनेज करना लेख पढ़ें. इससे आपको एडमिन के अधिकारों (useAdminAccess=true) के साथ एपीआई को कॉल करने में मदद मिलेगी.
उपयोगकर्ता की पुष्टि के साथ, एडमिन के अधिकारों के बिना स्पेस खोजने पर, यह तरीका नाम वाले स्पेस (spaceType की वैल्यू SPACE) खोजता है. इन स्पेस को पुष्टि किया गया उपयोगकर्ता ऐक्सेस कर सकता है. जैसे, उसके संगठन में मौजूद वे स्पेस जिनमें वह सदस्य है.
ज़रूरी शर्तें
Node.js
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat को ऐक्सेस करने की अनुमति हो.
- अपना एनवायरमेंट सेट अप करें:
- Google Cloud प्रोजेक्ट बनाएं.
- उस स्क्रीन को कॉन्फ़िगर करें जहां OAuth को सहमति दी जाती है.
- Google Chat API को चालू और कॉन्फ़िगर करें. साथ ही, अपने Chat ऐप्लिकेशन के लिए कोई नाम, आइकॉन, और जानकारी दें.
- Node.js के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करें.
- डेस्कटॉप ऐप्लिकेशन के लिए,
OAuth क्लाइंट आईडी क्रेडेंशियल बनाएं. इस गाइड में दिए गए सैंपल को चलाने के लिए, क्रेडेंशियल को अपनी स्थानीय डायरेक्ट्री में
credentials.jsonनाम की JSON फ़ाइल के तौर पर सेव करें.
- पुष्टि करने के लिए, ऐसा अनुमति का दायरा चुनें जिसमें उपयोगकर्ता की पुष्टि की जा सकती हो.
Python
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat को ऐक्सेस करने की अनुमति हो.
- अपना एनवायरमेंट सेट अप करें:
- Google Cloud प्रोजेक्ट बनाएं.
- उस स्क्रीन को कॉन्फ़िगर करें जहां OAuth को सहमति दी जाती है.
- Google Chat API को चालू और कॉन्फ़िगर करें. साथ ही, अपने Chat ऐप्लिकेशन के लिए कोई नाम, आइकॉन, और जानकारी दें.
- Python के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करें.
- डेस्कटॉप ऐप्लिकेशन के लिए,
OAuth क्लाइंट आईडी क्रेडेंशियल बनाएं. इस गाइड में दिए गए सैंपल को चलाने के लिए, क्रेडेंशियल को अपनी स्थानीय डायरेक्ट्री में
credentials.jsonनाम की JSON फ़ाइल के तौर पर सेव करें.
- पुष्टि करने के लिए, ऐसा अनुमति का दायरा चुनें जिसमें उपयोगकर्ता की पुष्टि की जा सकती हो.
Java
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat को ऐक्सेस करने की अनुमति हो.
- अपना एनवायरमेंट सेट अप करें:
- Google Cloud प्रोजेक्ट बनाएं.
- उस स्क्रीन को कॉन्फ़िगर करें जहां OAuth को सहमति दी जाती है.
- Google Chat API को चालू और कॉन्फ़िगर करें. साथ ही, अपने Chat ऐप्लिकेशन के लिए कोई नाम, आइकॉन, और जानकारी दें.
- Java के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करें.
- डेस्कटॉप ऐप्लिकेशन के लिए,
OAuth क्लाइंट आईडी क्रेडेंशियल बनाएं. इस गाइड में दिए गए सैंपल को चलाने के लिए, क्रेडेंशियल को अपनी स्थानीय डायरेक्ट्री में
credentials.jsonनाम की JSON फ़ाइल के तौर पर सेव करें.
- पुष्टि करने के लिए, ऐसा अनुमति का दायरा चुनें जिसमें उपयोगकर्ता की पुष्टि की जा सकती हो.
Apps Script
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat को ऐक्सेस करने की अनुमति हो.
- अपना एनवायरमेंट सेट अप करें:
- Google Cloud प्रोजेक्ट बनाएं.
- उस स्क्रीन को कॉन्फ़िगर करें जहां OAuth को सहमति दी जाती है.
- Google Chat API को चालू और कॉन्फ़िगर करें. साथ ही, अपने Chat ऐप्लिकेशन के लिए कोई नाम, आइकॉन, और जानकारी दें.
- Apps Script का कोई स्टैंडअलोन प्रोजेक्ट बनाएं, और बेहतर चैट की सेवा चालू करें.
- पुष्टि करने के लिए, ऐसा अनुमति का दायरा चुनें जिसमें उपयोगकर्ता की पुष्टि की जा सकती हो.
उपयोगकर्ता की पुष्टि के साथ स्पेस खोजना
Google Chat में, एडमिन के अधिकारों के बिना स्पेस खोजने के लिए, अपने अनुरोध में यह जानकारी शामिल करें:
- उपयोगकर्ता की पुष्टि के साथ, या अनुमति का दायरा तय करें.
chat.spaces.readonlychat.spaces search()तरीके कोSpaceसंसाधन पर कॉल करें.useAdminAccessकोfalseपर सेट करें या इस पैरामीटर को छोड़ दें.- नतीजों को फ़िल्टर करने के लिए, खोज के
queryपैरामीटर तय करें:spaceType = "SPACE"- जबqueryतय किया जाता है, तब यह ज़रूरी होता है. साथ ही, इसकी सिर्फ़SPACEवैल्यू काम करती है.displayName-HAS(:) ऑपरेटर का इस्तेमाल करके, स्पेस के डिसप्ले नेम के हिसाब से फ़िल्टर करें. उदाहरण के लिए,displayName:"Project". मिलान करने के लिए, टेक्स्ट को टोकन में बांटा जाता है. हर टोकन का प्रीफ़िक्स, केस-इनसेंसिटिव तरीके से और अलग-अलग तौर पर, स्पेस केdisplayNameमें कहीं भी सबस्ट्रिंग के तौर पर मैच किया जाता है. ध्यान दें: जबuseAdminAccessकी वैल्यूfalseहोती है, तब काम के नतीजे पाने के लिए, आपकी क्वेरी मेंdisplayNameशामिल करना ज़रूरी है. ऐसा न करने पर, इस तरीके से कोई जवाब नहीं मिलता.externalUserAllowed- इसके अलावा, यह फ़िल्टर किया जा सकता है कि स्पेस में बाहरी मेहमानों को अनुमति है या नहीं (trueयाfalse).
- इसके अलावा, लौटाए जाने वाले स्पेस की ज़्यादा से ज़्यादा संख्या को सीमित करने के लिए,
pageSize(ज़्यादा से ज़्यादा1000) तय करें. साथ ही, नतीजों के अगले पेज पाने के लिए,pageTokenतय करें. - इसके अलावा, खोज के नतीजों को क्रम से लगाने के लिए,
orderBy(createTime descयाrelevance desc) तय करें. ध्यान दें:relevance descकी सुविधा, Google Workspace डेवलपर प्रीव्यू प्रोग्राम के तहत उपलब्ध है.
क्वेरी के अलग-अलग फ़ील्ड में, सिर्फ़ AND ऑपरेटर इस्तेमाल किए जा सकते हैं. उदाहरण के लिए: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true". अगर आपको एक से ज़्यादा शर्तों के हिसाब से मैच करना है, तो displayName और externalUserAllowed में OR ऑपरेटर इस्तेमाल किए जा सकते हैं.
यहां दिया गया उदाहरण, नाम वाले उन स्पेस को खोजता है जिनके डिसप्ले नेम में "Project" शामिल है:
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 Script
/**
* 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, क्वेरी से मैच करने वाले और कॉल करने वाले उपयोगकर्ता के लिए ऐक्सेस किए जा सकने वाले स्पेस की पेज वाली सूची दिखाता है.
मिलते-जुलते विषय
- कोई स्पेस बनाना
- कोई स्पेस सेट अप करना
- किसी स्पेस के बारे में जानकारी पाना
- स्पेस की सूची देखना
- किसी स्पेस को अपडेट करना
- किसी स्पेस को मिटाना
- Google Workspace एडमिन के तौर पर स्पेस खोजना और उन्हें मैनेज करना