এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে গুগল চ্যাট এপিআই-এর Space রিসোর্সের search() মেথড ব্যবহার করে একটি গুগল ওয়ার্কস্পেস অর্গানাইজেশনের মধ্যে নামযুক্ত স্পেসগুলি অনুসন্ধান করা যায়।
Space রিসোর্স হলো এমন একটি স্থান যেখানে ব্যক্তি এবং চ্যাট অ্যাপগুলো বার্তা পাঠাতে, ফাইল শেয়ার করতে এবং একসাথে কাজ করতে পারে। বিভিন্ন ধরনের স্পেস রয়েছে:
- ডাইরেক্ট মেসেজ (ডিএম) হলো দুইজন ব্যবহারকারীর মধ্যে অথবা একজন ব্যবহারকারী ও একটি চ্যাট অ্যাপের মধ্যে কথোপকথন।
- গ্রুপ চ্যাট হলো তিন বা ততোধিক ব্যবহারকারীর মধ্যে চ্যাট অ্যাপের মাধ্যমে হওয়া কথোপকথন।
- নেমড স্পেস হলো এমন স্থায়ী স্থান যেখানে মানুষ বার্তা পাঠায়, ফাইল শেয়ার করে এবং সম্মিলিতভাবে কাজ করে।
আপনি যদি একজন Google Workspace প্রশাসক হন এবং আপনার প্রতিষ্ঠানের সমস্ত স্পেস জুড়ে অনুসন্ধান করতে চান, যার মধ্যে আপনার যোগদান না করা ব্যক্তিগত স্পেসও অন্তর্ভুক্ত, তাহলে প্রশাসকের বিশেষাধিকার ( useAdminAccess=true ) সহ API কল করতে "Google Workspace প্রশাসক হিসাবে স্পেস অনুসন্ধান এবং পরিচালনা করুন" দেখুন।
অ্যাডমিনিস্ট্রেটর সুবিধা ছাড়া ব্যবহারকারী প্রমাণীকরণের মাধ্যমে স্পেস খোঁজার সময়, এই পদ্ধতিটি প্রমাণীকৃত ব্যবহারকারীর অ্যাক্সেস আছে এমন নামযুক্ত স্পেস ( spaceType : SPACE ) অনুসন্ধান করে, যেমন তাদের সংস্থার মধ্যে থাকা সেইসব স্পেস যেগুলোর তারা সদস্য।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- Node.js ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
জাভা
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- জাভা ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
অ্যাপস স্ক্রিপ্ট
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং অ্যাডভান্সড চ্যাট সার্ভিসটি চালু করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
ব্যবহারকারী প্রমাণীকরণের মাধ্যমে স্পেস অনুসন্ধান করুন
অ্যাডমিনিস্ট্রেটর অধিকার ছাড়া গুগল চ্যাটে খালি জায়গা খুঁজতে, আপনার অনুরোধে নিম্নলিখিত তথ্যগুলো দিন:
- ব্যবহারকারী প্রমাণীকরণের ক্ষেত্রে,
chat.spaces.readonlyঅথবাchat.spacesঅনুমোদন পরিধি নির্দিষ্ট করুন। -
Spaceরিসোর্সের উপরsearch()মেথডটি কল করুন। -
useAdminAccessfalseএ সেট করুন (অথবা প্যারামিটারটি বাদ দিন)। - ফলাফল ফিল্টার করতে সার্চ
queryপ্যারামিটারগুলো নির্দিষ্ট করুন:-
spaceType = "SPACE"- যখনqueryনির্দিষ্ট করা থাকে এবং একমাত্র সমর্থিত মানSPACEহয়, তখন এটি আবশ্যক। -
displayName-HAS(:) অপারেটর ব্যবহার করে স্পেস ডিসপ্লে নেম দ্বারা ফিল্টার করুন। উদাহরণস্বরূপ,displayName:"Project"। ম্যাচ করার জন্য টেক্সটটিকে টোকেনাইজ করা হয় এবং প্রতিটি টোকেনকে স্পেসেরdisplayNameএর যেকোনো জায়গায় একটি সাবস্ট্রিং হিসেবে কেস-ইনসেনসিটিভভাবে ও স্বাধীনভাবে প্রিফিক্স-ম্যাচ করা হয়। দ্রষ্টব্য: যখনuseAdminAccessfalseথাকে, তখন অর্থপূর্ণ ফলাফল পেতে আপনার কোয়েরিতেdisplayNameথাকা আবশ্যক; অন্যথায়, মেথডটি একটি খালি রেসপন্স রিটার্ন করে। -
externalUserAllowed- স্থানটিতে বহিরাগত অতিথিদের অনুমতি আছে কিনা, তা ঐচ্ছিকভাবে ফিল্টার করুন (trueবাfalse)।
-
- ঐচ্ছিকভাবে, ফেরত আসা স্পেসের সর্বোচ্চ সংখ্যা সীমিত করতে (
1000পর্যন্ত)pageSizeনির্দিষ্ট করুন, অথবা ফলাফলের পরবর্তী পৃষ্ঠাগুলো পুনরুদ্ধার করতেpageTokenনির্দিষ্ট করুন। - ঐচ্ছিকভাবে, অনুসন্ধানের ফলাফল সাজানোর জন্য
orderByনির্দিষ্ট করুন (createTime descঅথবাrelevance desc)। দ্রষ্টব্য:relevance descবিকল্পটি Google Workspace Developer Preview Program-এর মাধ্যমে পাওয়া যায়।
কোয়েরির বিভিন্ন ফিল্ড জুড়ে শুধুমাত্র AND অপারেটর সমর্থিত। উদাহরণস্বরূপ: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true" । displayName এবং externalUserAllowed এর মধ্যে, আপনি যদি একাধিক শর্ত মেলাতে চান তবে OR অপারেটর সমর্থিত।
নিম্নলিখিত উদাহরণটি এমন নামযুক্ত স্পেসগুলি অনুসন্ধান করে, যেগুলির ডিসপ্লে নামে "Project" শব্দটি রয়েছে:
নোড.জেএস
/**
* 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);
পাইথন
"""
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()
জাভা
/**
* 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());
}
}
}
}
অ্যাপস স্ক্রিপ্ট
/**
* 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);
}
}
চ্যাট এপিআই কোয়েরির সাথে মেলে এমন এবং কলকারী ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য স্পেসগুলির একটি পেজিনেটেড তালিকা ফেরত দেয়।
সম্পর্কিত বিষয়
- একটি জায়গা তৈরি করুন
- একটি জায়গা তৈরি করুন
- একটি স্থান সম্পর্কে বিস্তারিত জানুন
- তালিকার স্থান
- একটি স্থান আপডেট করুন
- একটি স্পেস মুছে ফেলুন
- গুগল ওয়ার্কস্পেস প্রশাসক হিসেবে স্পেস অনুসন্ধান করুন এবং পরিচালনা করুন