এই ডকুমেন্টটিতে ব্যাখ্যা করা হয়েছে, কীভাবে গুগল চ্যাট এপিআই-এর Message রিসোর্সের search মেথড ব্যবহার করে প্রমাণীকৃত ব্যবহারকারীর অ্যাক্সেস আছে এমন মেসেজ অনুসন্ধান করা যায়।
ব্যবহারকারী প্রমাণীকরণের মাধ্যমে, আপনি ব্যবহারকারীর যোগদান করা সমস্ত কথোপকথন জুড়ে অথবা একটি নির্দিষ্ট কথোপকথনের মধ্যে বার্তা অনুসন্ধান করতে পারেন। উদাহরণস্বরূপ, আপনি এমন বার্তাগুলি অনুসন্ধান করতে পারেন যেগুলিতে নির্দিষ্ট কীওয়ার্ড রয়েছে, ব্যবহারকারীকে উল্লেখ করা হয়েছে, অপঠিত রয়েছে, বা সংযুক্তি রয়েছে।
চ্যাট এপিআই-তে, একটি চ্যাট মেসেজকে Message রিসোর্স দ্বারা উপস্থাপন করা হয়। যদিও চ্যাট ব্যবহারকারীরা শুধুমাত্র টেক্সট-ভিত্তিক মেসেজ পাঠাতে পারেন, চ্যাট অ্যাপগুলো আরও অনেক মেসেজিং ফিচার ব্যবহার করতে পারে, যার মধ্যে রয়েছে স্ট্যাটিক বা ইন্টারেক্টিভ ইউজার ইন্টারফেস প্রদর্শন করা, ব্যবহারকারীদের কাছ থেকে তথ্য সংগ্রহ করা এবং ব্যক্তিগতভাবে মেসেজ পাঠানো। চ্যাট এপিআই-এর জন্য উপলব্ধ মেসেজিং ফিচারগুলো সম্পর্কে আরও জানতে, গুগল চ্যাট মেসেজ ওভারভিউ দেখুন।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- Node.js ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- অনুমোদনের পরিধি নির্বাচন করুন ।
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- অনুমোদনের পরিধি নির্বাচন করুন ।
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
জাভা
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- জাভা ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- অনুমোদনের পরিধি নির্বাচন করুন ।
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
অ্যাপস স্ক্রিপ্ট
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং অ্যাডভান্সড চ্যাট সার্ভিসটি চালু করুন।
- অনুমোদনের পরিধি নির্বাচন করুন ।
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
বার্তা অনুসন্ধান করুন
ব্যবহারকারী প্রমাণীকরণের মাধ্যমে বার্তা অনুসন্ধান করতে, আপনার অনুরোধে নিম্নলিখিতগুলি প্রদান করুন:
chat.messages.readonlyঅথবাchat.messagesঅথরাইজেশন স্কোপ নির্দিষ্ট করুন।SearchMessagesমেথডটি কল করুন।ব্যবহারকারী যে সকল স্পেসের সদস্য, সেই সমস্ত স্পেসের মধ্যে অনুসন্ধান করার জন্য
parentহিসেবে 'spaces/-সেট করুন। অন্য কোনো মান ব্যবহার করলে ত্রুটি দেখা দেবে।filterফিল্ডে একটি সার্চ কোয়েরি স্ট্রিং নির্দিষ্ট করুন। কোয়েরিতে কীওয়ার্ড এবং ফিল্টার অন্তর্ভুক্ত থাকতে পারে।
নিম্নলিখিত কোড নমুনাটি "tasks" কীওয়ার্ডযুক্ত অপঠিত বার্তাগুলি অনুসন্ধান করে:
নোড.জেএস
/**
* Searches for messages in Google Chat.
* @param {string} filter The search query.
*/
async function searchMessages(filter) {
const {ChatServiceClient} = require('@google-apps/chat').v1;
// Instantiates a client
const chatClient = new ChatServiceClient();
// See https://github.com/googleworkspace/node-samples/blob/main/chat/client-libraries/cloud/authentication-utils.js
// for an example of how to authenticate the request.
// Construct request
const request = {
// Parent must be "spaces/-" to search across all spaces.
parent: 'spaces/-',
filter: filter,
};
// Run request
const iterable = await chatClient.searchMessagesAsync(request);
for await (const response of iterable) {
console.log(response);
}
}
searchMessages('tasks AND is_unread()');
পাইথন
from google.apps import chat_v1
def search_messages(filter_str: str):
"""
Searches for messages in Google Chat.
Args:
filter_str: The search query.
"""
# Create a client
client = chat_v1.ChatServiceClient()
# See https://github.com/googleworkspace/python-samples/blob/main/chat/client-libraries/cloud/authentication_utils.py
# for an example of how to authenticate the request.
# Initialize request argument
request = chat_v1.SearchMessagesRequest(
# Parent must be "spaces/-" to search across all spaces.
parent="spaces/-",
filter=filter_str
)
# Make the request
page_result = client.search_messages(request=request)
# Handle the response
for response in page_result:
print(response)
search_messages('tasks AND is_unread()')
জাভা
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.SearchMessageResult;
import com.google.chat.v1.SearchMessagesRequest;
public class SearchMessages {
public static void main(String[] args) throws Exception {
searchMessages("tasks AND is_unread()");
}
/**
* Searches for messages in Google Chat.
*
* @param filter The search query.
*/
public static void searchMessages(String filter) 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 = ChatServiceClient.create()) {
SearchMessagesRequest request =
SearchMessagesRequest.newBuilder()
.setParent("spaces/-")
.setFilter(filter)
.build();
for (SearchMessageResult result : chatServiceClient.searchMessages(request).iterateAll()) {
System.out.println(result.getMessage().getText());
}
}
}
}
অ্যাপস স্ক্রিপ্ট
javascript /** * Searches for messages in Google Chat. */ function searchMessages() { const filter = 'tasks AND is_unread()'; const url = 'https://chat.googleapis.com/v1/spaces/-/messages:search'; const request_payload = { filter: filter }; try { const response = UrlFetchApp.fetch(url, { method: 'post', headers: { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() }, contentType: 'application/json', payload: JSON.stringify(request_payload) }); if (response.results) { for (const result of response.results) { console.log('Message text: %s', result.message.text); } } else { console.log('No messages found.'); } } catch (err) { console.log('Failed to search messages with error: %s', err.message); } }
সার্চ ফিল্টার এবং অপারেটর ব্যবহার করুন
আপনি filter ফিল্ডে কীওয়ার্ড, ফিল্ড এবং ফাংশন ব্যবহার করে আপনার অনুসন্ধানের ফলাফল পরিমার্জন করতে পারেন। আরও তথ্যের জন্য, SearchMessagesRequest দেখুন।
কীওয়ার্ড দিয়ে অনুসন্ধান করুন
নির্দিষ্ট লেখা আছে এমন বার্তা খুঁজতে, কীওয়ার্ড লিখুন। উদাহরণস্বরূপ, অপেক্ষাধীন প্রতিবেদন খুঁজতে, pending reports ব্যবহার করুন।
ক্ষেত্র অনুসারে অনুসন্ধান করুন
আপনি নির্দিষ্ট বার্তা বা স্পেস ফিল্ড দ্বারা ফলাফল ফিল্টার করতে পারেন। উদাহরণস্বরূপ:
-
create_time: বার্তাটি তৈরি হওয়ার সময় অনুযায়ী ফিল্টার করুন। উদাহরণ:create_time > "2023-01-01T00:00:00Z" -
sender.name: প্রেরকের রিসোর্স নাম দিয়ে ফিল্টার করুন। উদাহরণ:sender.name = "users/1234567890" -
space.name: অনুসন্ধানকে একটি নির্দিষ্ট স্পেসে সীমাবদ্ধ করুন। উদাহরণ:space.name = "spaces/ABCDEFGH" -
space.display_name: তাদের ডিসপ্লে নামের আংশিক মিলের ভিত্তিতে স্পেস ফিল্টার করুন। ফলাফল শীর্ষ পাঁচটি স্পেস মিলের মধ্যে সীমাবদ্ধ থাকবে। উদাহরণ:space.display_name:Project -
attachment: কোনো সংযুক্তি আছে কিনা তা পরীক্ষা করুন। উদাহরণ:attachment:* -
annotations.user_mentions.user.name: মেনশন অনুযায়ী ফিল্টার করুন। উদাহরণ:annotations.user_mentions.user.name:"users/me"
ফাংশন ব্যবহার করে অনুসন্ধান করুন
নিম্নলিখিত ফাংশনগুলির মাধ্যমে উন্নত ফিল্টারিং করা যায়:
-
has_link: যেসব বার্তায় অন্তত একটি হাইপারলিঙ্ক রয়েছে, সেগুলো ফেরত দেয়। -
is_unread: ব্যবহারকারীর দ্বারা অপঠিত বার্তাগুলো ফেরত দেয়।
বিভিন্ন ফিল্ড জুড়ে শুধুমাত্র AND অপারেটর সমর্থিত। উদাহরণস্বরূপ: sender.name = "users/me" AND is_unread() ।
সম্পর্কিত বিষয়
- একটি বার্তা বিন্যাস করুন ।
- একটি বার্তা মুছে ফেলুন ।
- একটি বার্তা সম্পর্কে বিস্তারিত জানুন ।
- একটি স্পেসে বার্তাগুলির তালিকা তৈরি করুন ।
- একটি বার্তা হালনাগাদ করুন ।
- একটি বার্তা পাঠান ।