গুগল স্লাইডস ব্যবহারকারীদের স্লাইড এবং পেজের বিভিন্ন উপাদানে মন্তব্য যোগ করার মাধ্যমে যৌথভাবে কাজ করার সুযোগ দেয়।
এই ডকুমেন্টটিতে দেখানো হয়েছে, কীভাবে আপনি গুগল স্লাইডস এপিআই ব্যবহার করে প্রোগ্রাম্যাটিকভাবে কমেন্ট পড়তে, তৈরি করতে, উত্তর দিতে, আপডেট করতে বা মুছে ফেলতে পারেন।
মন্তব্যগুলো পড়ুন
যখন আপনি presentations রিসোর্সের get মেথড ব্যবহার করে কোনো প্রেজেন্টেশন পুনরুদ্ধার করেন, তখন কমেন্ট থ্রেড এবং অ্যাঙ্করগুলো ডিফল্টরূপে বাদ দেওয়া হয়।
রেসপন্সে কমেন্ট অন্তর্ভুক্ত করতে, commentsViewMode কোয়েরি প্যারামিটারটি COMMENTS_VIEW_MODE_INCLUDED এ সেট করুন। এছাড়াও, যদি কলিং ইউজারের ফাইলটিতে কমেন্ট অ্যাক্সেস থাকে, তাহলে কোয়েরি প্যারামিটারটি COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS এ সেট করলেও কমেন্ট রিটার্ন হয়।
রেসপন্সে comments এবং commentAnchors উভয় ফিল্ডই ফেরত দেওয়া হয়।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি প্রেজেন্টেশন থেকে কমেন্ট থ্রেড এবং তাদের অ্যাঙ্করগুলি পুনরুদ্ধার করতে একটি get রিকোয়েস্ট ব্যবহার করতে হয়:
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)
উত্তরে, মন্তব্য দুটি স্থানে ফেরত পাঠানো হয়:
- গ্লোবাল
commentsঅ্যারে, যাCommentThreadঅবজেক্টগুলো ধারণ করে। -
commentAnchorsঅ্যারেতেCommentAnchorঅবজেক্টগুলো থাকে, যা কমেন্ট অ্যাঙ্কর আইডিগুলোকে পেজ বা পেজ এলিমেন্টের অবস্থানের (অবজেক্ট অ্যাঙ্কর) সাথে ম্যাপ করে।
একটি নির্দিষ্ট পৃষ্ঠার মন্তব্যগুলো পড়ুন
আপনি presentations.pages রিসোর্সের pages.get মেথড ব্যবহার করে একটি নির্দিষ্ট পেজের জন্য কমেন্ট এবং অ্যাঙ্করও পুনরুদ্ধার করতে পারেন। নির্দিষ্ট পেজ টার্গেটের জন্য কমেন্ট অন্তর্ভুক্ত করতে commentsViewMode কোয়েরি প্যারামিটার সেট করুন:
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors
নমুনা প্রতিক্রিয়া
নিম্নলিখিত JSON নমুনা প্রতিক্রিয়াটি একটি স্লাইড পৃষ্ঠার একটি আকৃতির মধ্যে থাকা টেক্সট রেঞ্জে অ্যাঙ্কর করা একটি মন্তব্য থ্রেড দেখাচ্ছে:
{
"presentationId": "PRESENTATION_ID",
"slides": [
{
"objectId": "SLIDE_PAGE_ID",
"commentAnchors": [
{
"anchorId": "ANCHOR_ID",
"objectAnchors": [
{
"objectId": "SHAPE_OBJECT_ID",
"shapeTextAnchors": {
"ranges": [
{
"startIndex": 0,
"endIndex": 12
}
]
}
}
]
}
]
}
],
"comments": [
{
"commentId": "COMMENT_ID",
"anchorId": "ANCHOR_ID",
"headPost": {
"postId": "POST_ID",
"content": "This is a comment thread head post.",
"contentHtml": "The content of the post as HTML.",
"author": {
"displayName": "DISPLAY_NAME",
"me": true,
"user": "users/USER"
},
"createTime": "2026-07-01T10:13:12Z",
"updateTime": "2026-07-01T10:13:12Z"
},
"replies": [
{
"postId": "REPLY_POST_ID",
"content": "This is a reply to the comment.",
"author": {
"displayName": "DISPLAY_NAME",
"me": false
},
"createTime": "2026-07-01T10:15:00Z",
"updateTime": "2026-07-01T10:15:00Z"
}
],
"status": "OPEN"
}
],
"commentsViewMode": "COMMENTS_VIEW_MODE_INCLUDED"
}
মন্তব্য তৈরি ও পরিচালনা করুন
আপনি presentations রিসোর্সের batchUpdate মেথড ব্যবহার করে প্রোগ্রাম্যাটিকভাবে মন্তব্য বা উত্তর যোগ, সম্পাদনা এবং মুছে ফেলতে পারেন।
মন্তব্যসহ ব্যাচ আপডেট করার সময়, সম্ভাব্য আংশিক ব্যর্থতার দিকে নজর রাখা উচিত। আরও তথ্যের জন্য, ‘মন্তব্য আপডেটের অবস্থা’ দেখুন।
একটি মন্তব্য লিখুন
একটি প্রেজেন্টেশনে কমেন্ট থ্রেড যুক্ত করতে, InsertCommentRequest অবজেক্টটি ব্যবহার করুন। আপনাকে অবশ্যই কমেন্টের টেক্সট কন্টেন্ট এবং অ্যাঙ্কর লোকেশন প্রদান করতে হবে। অ্যাঙ্কর লোকেশন হিসেবে নিম্নলিখিতগুলির মধ্যে একটি অবশ্যই নির্দিষ্ট করতে হবে:
-
objectId: মন্তব্যটি অ্যাঙ্কর করার জন্য স্লাইড পেজ বা পেজের কোনো উপাদানের (যেমন শেপ বা টেবিল) অবজেক্ট আইডি। -
shapeTextAnchor: একটি শেপের মধ্যে থাকা টেক্সটের কোনো রেঞ্জে কমেন্টকে অ্যাঙ্কর করে। -
tableCellTextAnchor: টেবিলের সেলের কোনো টেক্সট রেঞ্জে কমেন্টকে অ্যাঙ্কর করে। -
tableAnchor: একটি টেবিলের নির্দিষ্ট সেল রেঞ্জে কোনো মন্তব্যকে স্থির করে রাখে।
নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি স্লাইড পৃষ্ঠায় অ্যাঙ্কর করা একটি মন্তব্য থ্রেড যুক্ত করতে হয়:
{
"requests": [
{
"insertComment": {
"content": "This is a comment added using the API.",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
assigneeEmailAddress ফিল্ডে কোনো নির্দিষ্ট ব্যবহারকারীর ইমেল দিয়ে আপনি তাকে একটি মন্তব্য বরাদ্দ করতে পারেন:
{
"requests": [
{
"insertComment": {
"content": "Please review this slide.",
"assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
একটি উত্তর যোগ করুন অথবা পদক্ষেপ নিন
কোনো মন্তব্য থ্রেডের উত্তর দিতে, সেটির সমাধান করতে বা পুনরায় খুলতে, AddCommentReplyRequest অবজেক্টটি ব্যবহার করুন।
আপনাকে অবশ্যই commentId এবং সেই post প্রদান করতে হবে যেখানে উত্তরটি একটি Post অবজেক্ট দ্বারা উপস্থাপিত হয়।
Post অবজেক্টটিতে উত্তরের content থাকে এবং এতে ঐচ্ছিকভাবে একটি commentAction নির্দিষ্ট করা যায় (যার মধ্যে কমেন্ট থ্রেডটি RESOLVE বা REOPEN অ্যাকশনও অন্তর্ভুক্ত)। এটি একটি CommentActionType অবজেক্ট দ্বারা উপস্থাপিত হয়।
আপনি Post অবজেক্টে একটি নতুন assigneeEmail উল্লেখ করে একটি কমেন্ট থ্রেড পুনরায় অ্যাসাইন করতে পারেন।
নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি বিদ্যমান মন্তব্য থ্রেডে উত্তর দিতে হয়:
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"content": "Replying to the comment thread."
}
}
}
]
}
নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি মন্তব্য থ্রেড সমাধান করতে হয়:
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"commentAction": "RESOLVE"
}
}
}
]
}
একটি পোস্ট সম্পাদনা করুন
আপনার লেখা কোনো পোস্টের টেক্সট কন্টেন্ট সম্পাদনা করতে, UpdateCommentPostRequest অবজেক্টটি ব্যবহার করুন। আপনাকে অবশ্যই থ্রেডের commentId , যে পোস্টটি সম্পাদনা করতে চান তার postId এবং নতুন প্লেইন টেক্সট content উল্লেখ করতে হবে।
নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি পোস্ট সম্পাদনা করতে হয়:
{
"requests": [
{
"updateCommentPost": {
"commentId": "COMMENT_ID",
"postId": "POST_ID",
"content": "This is the updated comment text."
}
}
]
}
মন্তব্য এবং উত্তরগুলো মুছে ফেলুন
মন্তব্য এবং উত্তর মুছে ফেলার জন্য আপনার কাছে দুটি বিকল্প আছে:
একটি মন্তব্য থ্রেড মুছুন: সম্পূর্ণ
CommentThreadমুছে ফেলার জন্য,DeleteCommentRequestঅবজেক্টটি ব্যবহার করুন। আপনি শুধুমাত্র তখনই একটি মন্তব্য থ্রেড মুছতে পারবেন, যদি আপনিCommentThreadঅবজেক্টের মধ্যে থাকা থ্রেডটিরheadPostএর লেখক হন।একটি উত্তর মুছুন: একটি
CommentThreadথেকে কোনো নির্দিষ্ট উত্তরPostমুছে ফেলার জন্য,DeleteCommentReplyRequestঅবজেক্টটি ব্যবহার করুন। আপনি শুধুমাত্র আপনার নিজের লেখা উত্তরগুলোই মুছতে পারবেন। যে উত্তর পোস্টগুলোতেcommentActionবাassigneeEmailথাকে, সেগুলো আপনি মুছতে পারবেন না।
নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি মন্তব্য থ্রেড মুছে ফেলা যায়:
{
"requests": [
{
"deleteComment": {
"commentId": "COMMENT_ID"
}
}
]
}
মন্তব্য আপডেট স্ট্যাটাস
যেসব অনুরোধের জন্য কমেন্ট থ্রেড সেভ করার প্রয়োজন হয় (যেমন কমেন্ট যোগ করা বা রিপ্লাই দেওয়া), সেগুলোতে আংশিক ব্যর্থতা দেখা দিতে পারে। এই ক্ষেত্রে, প্রেজেন্টেশন মডেলের পরিবর্তনগুলো (যেমন স্লাইডের কন্টেন্ট বা ব্যাকগ্রাউন্ড আপডেট করা) সফলভাবে কমিট হলেও, এর সাথে যুক্ত কমেন্টগুলো সেভ নাও হতে পারে।
presentations.batchUpdate মেথডের রেসপন্স বডিতে থাকা commentUpdateState ফিল্ডটি চেক করে আপনি যাচাই করতে পারেন যে কমেন্ট আপডেটগুলো সফলভাবে প্রয়োগ হয়েছে কিনা। এই ফিল্ডটি একটি CommentUpdateState অবজেক্ট দ্বারা উপস্থাপিত হয়।
CommentUpdateState এ নিম্নলিখিত স্টেটগুলো ফেরত দেওয়া হয়:
- ব্যাচ অপারেশনে কোনো মন্তব্য আপডেটের অনুরোধ করা
NO_UPDATES_REQUESTED। -
ALL_SAVED: অনুরোধ করা সমস্ত মন্তব্য আপডেট সফলভাবে প্রয়োগ করা হয়েছে। -
ALL_FAILED_UNKNOWN_REASON: অনুরোধ করা সমস্ত মন্তব্য আপডেট সংরক্ষণ করা যায়নি, যদিও উপস্থাপনার অন্যান্য পরিবর্তনগুলো কমিট করা হয়ে থাকতে পারে।