টুল: list_messages
একটি নির্দিষ্ট গুগল চ্যাট কথোপকথন (স্পেস, ডাইরেক্ট মেসেজ (DM) বা গ্রুপ DM) থেকে মেসেজগুলো মার্কডাউন ফরম্যাটে পুনরুদ্ধার করে। থ্রেড, সময়সীমা এবং মেসেজের সংখ্যা অনুসারে ফিল্টার করার সুবিধা রয়েছে। এছাড়াও, আরও বিস্তারিত তথ্যের জন্য মেসেজের পরবর্তী পৃষ্ঠাটিও পুনরুদ্ধার করা যায়। ব্যক্তিগত মেসেজ (যে মেসেজগুলো শুধুমাত্র একজন ব্যবহারকারী দেখতে পান) ফিল্টার করে বাদ দেওয়া হয়।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে curl ব্যবহার করে list_messages MCP টুলটি কল করতে হয়।
| কার্ল অনুরোধ |
|---|
curl --location 'https://chatmcp.googleapis.com/mcp/v1' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_messages", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
ইনপুট স্কিমা
চ্যাট বার্তা তালিকাভুক্ত করার অনুরোধ
| JSON উপস্থাপনা |
|---|
{ "conversationId": string, "threadId": string, "pageSize": integer, "pageToken": string, "startTime": string, "endTime": string } |
| ক্ষেত্র | |
|---|---|
conversationId | আবশ্যক। কথোপকথনের আইডি। একটি কথোপকথন স্পেস, ডিরেক্ট মেসেজ (DM) অথবা গ্রুপ DM/চ্যাট হতে পারে। ফরম্যাট: স্পেস/{স্পেস} |
threadId | ঐচ্ছিক। কথোপকথনের মধ্যে একটি নির্দিষ্ট থ্রেডের আইডি। এটি প্রদান করা হলে, শুধুমাত্র এই থ্রেডের বার্তাগুলি ফেরত দেওয়া হবে। এটি বাদ দেওয়া হলে, কথোপকথনের সমস্ত থ্রেডের বার্তাগুলি বিবেচনা করা হবে। ফরম্যাট: স্পেস/{স্পেস}/থ্রেড/{থ্রেড} |
pageSize | ঐচ্ছিক। ফেরত পাঠানোর জন্য বার্তার সর্বোচ্চ সংখ্যা। পরিষেবাটি এই মানের চেয়ে কম বার্তাও ফেরত পাঠাতে পারে। নির্দিষ্ট না করা হলে, ডিফল্ট মান ২০ হবে। সর্বোচ্চ মান হলো ৫০। আপনি যদি ৫০-এর বেশি কোনো মান ব্যবহার করেন, তবে তা স্বয়ংক্রিয়ভাবে ৫০-এ পরিবর্তিত হয়ে যাবে। |
pageToken | ঐচ্ছিক। পূর্ববর্তী list_messages কল থেকে প্রাপ্ত একটি পেজ টোকেন। পরবর্তী পেজটি পুনরুদ্ধার করতে এটি প্রদান করুন। |
startTime | ঐচ্ছিক। বার্তা ফিল্টার করার জন্য ISO 8601 টাইমস্ট্যাম্প। শুধুমাত্র এই সময়ের পরে তৈরি করা বার্তাগুলিই ফেরত দেওয়া হবে। |
endTime | ঐচ্ছিক। বার্তা ফিল্টার করার জন্য ISO 8601 টাইমস্ট্যাম্প। শুধুমাত্র এই সময়ের আগে তৈরি করা বার্তাগুলোই ফেরত দেওয়া হবে। |
আউটপুট স্কিমা
অনুরোধকৃত কথোপকথন থেকে বার্তাগুলির তালিকা সম্বলিত প্রতিক্রিয়া।
চ্যাট বার্তাগুলির প্রতিক্রিয়া তালিকাভুক্ত করুন
| JSON উপস্থাপনা |
|---|
{
"messages": [
{
object ( |
| ক্ষেত্র | |
|---|---|
messages[] | সংগৃহীত বার্তাগুলির তালিকা, বিপরীত কালানুক্রমিক ক্রমে (নতুন থেকে নতুন)। |
nextPageToken | একটি টোকেন, যা পরবর্তী |
চ্যাট বার্তা
| JSON উপস্থাপনা |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| ক্ষেত্র | |
|---|---|
messageId | বার্তার রিসোর্স নাম। ফরম্যাট: স্পেস/{স্পেস}/বার্তা/{বার্তা} |
threadId | এই বার্তাটি যে থ্রেডের অন্তর্গত। বার্তাটি আনথ্রেডেড হলে এটি খালি থাকবে। ফরম্যাট: স্পেস/{স্পেস}/থ্রেড/{থ্রেড} |
plaintextBody | মার্কডাউন ফরম্যাটিং ব্যবহার করে বার্তার মূল অংশ। |
sender | বার্তার প্রেরক। |
createTime | শুধুমাত্র আউটপুট। বার্তাটি তৈরি হওয়ার সময়কার টাইমস্ট্যাম্প। |
threadedReply | বার্তাটি একটি থ্রেড রিপ্লাই কিনা। |
attachments[] | বার্তার সাথে সংযুক্ত ফাইলগুলো রয়েছে। |
reactionSummaries[] | বার্তাটিতে ইমোজি প্রতিক্রিয়াগুলোর সারাংশ অন্তর্ভুক্ত করা হয়েছে। |
ব্যবহারকারী
| JSON উপস্থাপনা |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| ক্ষেত্র | |
|---|---|
userId | চ্যাট ব্যবহারকারীর রিসোর্স নাম। ফরম্যাট: users/{user}। |
displayName | একজন চ্যাট ব্যবহারকারীর প্রদর্শিত নাম। |
email | ব্যবহারকারীর ইমেল ঠিকানা। এই ক্ষেত্রটি শুধুমাত্র তখনই পূরণ করা হয় যখন ব্যবহারকারীর ধরন মানুষ (HUMAN) হয়। |
userType | ব্যবহারকারীর ধরণ। |
চ্যাট সংযুক্তি মেটাডেটা
| JSON উপস্থাপনা |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| ক্ষেত্র | |
|---|---|
attachmentId | সংযুক্তিটির রিসোর্স নাম। ফরম্যাট: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename | সংযুক্তিটির নাম। |
mimeType | বিষয়বস্তুর ধরণ (MIME টাইপ)। |
source | সংযুক্তিটির উৎস। |
প্রতিক্রিয়া সারাংশ
| JSON উপস্থাপনা |
|---|
{ "emoji": string, "count": integer } |
| ক্ষেত্র | |
|---|---|
emoji | ইমোজি ইউনিকোড স্ট্রিং অথবা নিজস্ব ইমোজির নাম। |
count | সংশ্লিষ্ট ইমোজি ব্যবহার করে করা মোট প্রতিক্রিয়ার সংখ্যা। |
ব্যবহারকারীর ধরণ
গুগল চ্যাট ব্যবহারকারীর প্রকারভেদ।
| এনাম | |
|---|---|
USER_TYPE_UNSPECIFIED | অনির্দিষ্ট। |
HUMAN | মানব ব্যবহারকারী। |
APP | অ্যাপ ব্যবহারকারী। |
উৎস
সংযুক্তিটির উৎস।
| এনাম | |
|---|---|
SOURCE_UNSPECIFIED | সংরক্ষিত। |
DRIVE_FILE | ফাইলটি একটি গুগল ড্রাইভ ফাইল। |
UPLOADED_CONTENT | ফাইলটি চ্যাটে আপলোড করা হয়েছে। |
টুল টীকা
কোনো নির্দিষ্ট টুলের প্রাথমিক ঝুঁকি বর্ণনা করার জন্য টুল অ্যানোটেশনগুলো এমসিপি ক্লায়েন্টদের কাছে পাঠানো হয়। বেশিরভাগ ক্লায়েন্ট এই ইঙ্গিতগুলোকে অবিশ্বস্ত হিসেবে গণ্য করে, কিন্তু কখন একজন ব্যবহারকারীকে নিশ্চিতকরণের জন্য প্রম্পট পাঠানো হবে, সেই সিদ্ধান্ত নিতে এগুলো ব্যবহার করা যেতে পারে।
টাইটেল স্ট্রিং-এর পাশাপাশি, নিম্নলিখিত বুলিয়ান হিন্টগুলো নিম্নরূপভাবে সংজ্ঞায়িত করা হয়েছে:
-
readOnlyHint: যদি true হয়, টুলটি তার পরিবেশ পরিবর্তন করে না। ডিফল্ট: false। -
destructiveHint: যদি true হয়, তাহলে টুলটি ধ্বংসাত্মক কাজ করতে পারবে। যদি false হয়, তাহলে টুলটি শুধুমাত্র সংযোজনমূলক কাজ করতে পারবে। ডিফল্ট: true। -
idempotentHint: যদি true হয়, তাহলে একই আর্গুমেন্ট দিয়ে টুলটিকে বারবার কল করলেও এর এনভায়রনমেন্টের উপর কোনো অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false। -
openWorldHint: যদি true হয়, তাহলে টুলটি বাহ্যিক সত্তার 'ওপেন ওয়ার্ল্ড'-এর সাথে ইন্টারঅ্যাক্ট করতে পারবে। যদি false হয়, তাহলে টুলটি শুধুমাত্র অভ্যন্তরীণ সত্তার সাথে ইন্টারঅ্যাক্ট করতে পারবে। উদাহরণস্বরূপ, একটি ওয়েব সার্চ টুল ওপেন ওয়ার্ল্ড হবে, কিন্তু একটি মেমরি টুল ওপেন ওয়ার্ল্ড হবে না।
ধ্বংসাত্মক ইঙ্গিত: ❌ | স্বকীয় ইঙ্গিত: ✅ | শুধুমাত্র পঠনযোগ্য ইঙ্গিত: ✅ | উন্মুক্ত বিশ্ব ইঙ্গিত: ❌
অনুমোদনের পরিধি
নিম্নলিখিত OAuth স্কোপগুলির মধ্যে একটি প্রয়োজন:
-
https://www.googleapis.com/auth/chat.messages -
https://www.googleapis.com/auth/chat.messages.readonly