স্থান অনুসন্ধান করুন

এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে গুগল চ্যাট এপিআই-এর Space রিসোর্সের search() মেথড ব্যবহার করে একটি গুগল ওয়ার্কস্পেস অর্গানাইজেশনের মধ্যে নামযুক্ত স্পেসগুলি অনুসন্ধান করা যায়।

Space রিসোর্স হলো এমন একটি স্থান যেখানে ব্যক্তি এবং চ্যাট অ্যাপগুলো বার্তা পাঠাতে, ফাইল শেয়ার করতে এবং একসাথে কাজ করতে পারে। বিভিন্ন ধরনের স্পেস রয়েছে:

  • ডাইরেক্ট মেসেজ (ডিএম) হলো দুইজন ব্যবহারকারীর মধ্যে অথবা একজন ব্যবহারকারী ও একটি চ্যাট অ্যাপের মধ্যে কথোপকথন।
  • গ্রুপ চ্যাট হলো তিন বা ততোধিক ব্যবহারকারীর মধ্যে চ্যাট অ্যাপের মাধ্যমে হওয়া কথোপকথন।
  • নেমড স্পেস হলো এমন স্থায়ী স্থান যেখানে মানুষ বার্তা পাঠায়, ফাইল শেয়ার করে এবং সম্মিলিতভাবে কাজ করে।

আপনি যদি একজন Google Workspace প্রশাসক হন এবং আপনার প্রতিষ্ঠানের সমস্ত স্পেস জুড়ে অনুসন্ধান করতে চান, যার মধ্যে আপনার যোগদান না করা ব্যক্তিগত স্পেসও অন্তর্ভুক্ত, তাহলে প্রশাসকের বিশেষাধিকার ( useAdminAccess=true ) সহ API কল করতে "Google Workspace প্রশাসক হিসাবে স্পেস অনুসন্ধান এবং পরিচালনা করুন" দেখুন।

অ্যাডমিনিস্ট্রেটর সুবিধা ছাড়া ব্যবহারকারী প্রমাণীকরণের মাধ্যমে স্পেস খোঁজার সময়, এই পদ্ধতিটি প্রমাণীকৃত ব্যবহারকারীর অ্যাক্সেস আছে এমন নামযুক্ত স্পেস ( spaceType : SPACE ) অনুসন্ধান করে, যেমন তাদের সংস্থার মধ্যে থাকা সেইসব স্পেস যেগুলোর তারা সদস্য।

পূর্বশর্ত

নোড.জেএস

পাইথন

জাভা

অ্যাপস স্ক্রিপ্ট

ব্যবহারকারী প্রমাণীকরণের মাধ্যমে স্পেস অনুসন্ধান করুন

অ্যাডমিনিস্ট্রেটর অধিকার ছাড়া গুগল চ্যাটে খালি জায়গা খুঁজতে, আপনার অনুরোধে নিম্নলিখিত তথ্যগুলো দিন:

  • ব্যবহারকারী প্রমাণীকরণের ক্ষেত্রে, chat.spaces.readonly অথবা chat.spaces অনুমোদন পরিধি নির্দিষ্ট করুন।
  • Space রিসোর্সের উপর search() মেথডটি কল করুন।
  • useAdminAccess false এ সেট করুন (অথবা প্যারামিটারটি বাদ দিন)।
  • ফলাফল ফিল্টার করতে সার্চ query প্যারামিটারগুলো নির্দিষ্ট করুন:
    • spaceType = "SPACE" - যখন query নির্দিষ্ট করা থাকে এবং একমাত্র সমর্থিত মান SPACE হয়, তখন এটি আবশ্যক।
    • displayName - HAS ( : ) অপারেটর ব্যবহার করে স্পেস ডিসপ্লে নেম দ্বারা ফিল্টার করুন। উদাহরণস্বরূপ, displayName:"Project" । ম্যাচ করার জন্য টেক্সটটিকে টোকেনাইজ করা হয় এবং প্রতিটি টোকেনকে স্পেসের displayName এর যেকোনো জায়গায় একটি সাবস্ট্রিং হিসেবে কেস-ইনসেনসিটিভভাবে ও স্বাধীনভাবে প্রিফিক্স-ম্যাচ করা হয়। দ্রষ্টব্য: যখন useAdminAccess false থাকে, তখন অর্থপূর্ণ ফলাফল পেতে আপনার কোয়েরিতে 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);
  }
}

চ্যাট এপিআই কোয়েরির সাথে মেলে এমন এবং কলকারী ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য স্পেসগুলির একটি পেজিনেটেড তালিকা ফেরত দেয়।