মন্তব্য হলো কোনো ফাইলের উপর ব্যবহারকারীর দেওয়া মতামত, যেমন কোনো ওয়ার্ড-প্রসেসিং ডকুমেন্টের পাঠক একটি বাক্যকে কীভাবে নতুন করে লেখা যায় সে বিষয়ে পরামর্শ দেন। মন্তব্য দুই প্রকারের হয়: অ্যাঙ্কর্ড কমেন্ট এবং আনঅ্যাঙ্কর্ড কমেন্ট । একটি অ্যাঙ্কর্ড কমেন্ট ডকুমেন্টের কোনো নির্দিষ্ট সংস্করণের মধ্যে একটি নির্দিষ্ট স্থানের সাথে যুক্ত থাকে, যেমন ওয়ার্ড-প্রসেসিং ডকুমেন্টের কোনো একটি বাক্য। অপরদিকে, একটি আনঅ্যাঙ্কর্ড কমেন্ট শুধুমাত্র ডকুমেন্টটির সাথেই যুক্ত থাকে।
মন্তব্যের সাথে উত্তর সংযুক্ত থাকে এবং এটি মন্তব্যের প্রতি ব্যবহারকারীর প্রতিক্রিয়া প্রকাশ করে। ড্রাইভ এপিআই আপনার ব্যবহারকারীদেরকে আপনার অ্যাপ দ্বারা তৈরি ডকুমেন্টে মন্তব্য এবং উত্তর যোগ করার সুযোগ দেয়। সম্মিলিতভাবে, উত্তরসহ একটি মন্তব্যকে আলোচনা (discussion) বলা হয়।
ফিল্ড প্যারামিটার ব্যবহার করুন
comments রিসোর্সের সমস্ত মেথডের ( delete বাদে) জন্য, রেসপন্সে কোন ফিল্ডগুলো রিটার্ন করা হবে তা নির্দিষ্ট করতে আপনাকে অবশ্যই fields সিস্টেম প্যারামিটারটি সেট করতে হবে। বেশিরভাগ ড্রাইভ রিসোর্স মেথডে এই কাজটি শুধুমাত্র নন-ডিফল্ট ফিল্ডগুলো রিটার্ন করার জন্য প্রয়োজন হয়, কিন্তু comments রিসোর্সের জন্য এটি বাধ্যতামূলক। আপনি যদি fields প্যারামিটারটি বাদ দেন, তাহলে মেথডটি একটি এরর রিটার্ন করবে। আরও তথ্যের জন্য, 'Return specific fields ' দেখুন।
মন্তব্য সীমাবদ্ধতা
ড্রাইভ এপিআই ব্যবহার করে অ্যাঙ্কর্ড এবং আনঅ্যাঙ্কর্ড কমেন্ট নিয়ে কাজ করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলো প্রযোজ্য হয়:
| মন্তব্যের ধরণ | ফাইলের ধরন |
|---|---|
| নোঙর করা |
|
| নোঙরবিহীন |
|
ডকুমেন্টের সর্বশেষ সংস্করণে একটি অ্যাঙ্করড কমেন্ট যোগ করুন।
যখন আপনি কোনো মন্তব্য যোগ করেন, তখন আপনি সেটিকে ফাইলের কোনো একটি অঞ্চলের সাথে যুক্ত করতে চাইতে পারেন। একটি অ্যাঙ্কর ফাইলের এমন একটি অঞ্চলকে সংজ্ঞায়িত করে, যেটিকে একটি মন্তব্য নির্দেশ করে। comments রিসোর্সটি anchor ফিল্ডটিকে একটি JSON স্ট্রিং হিসেবে সংজ্ঞায়িত করে।
একটি অ্যাঙ্করড মন্তব্য যোগ করতে:
(ঐচ্ছিক)। একটি ডকুমেন্টের প্রতিটি
revisionIDতালিকাভুক্ত করতেrevisionsরিসোর্সেরlistমেথডটি কল করুন। শুধুমাত্র তখনই এই ধাপটি অনুসরণ করুন, যদি আপনি সর্বশেষ রিভিশন ছাড়া অন্য কোনো রিভিশনে একটি মন্তব্য অ্যাঙ্কর করতে চান। যদি আপনি সর্বশেষ রিভিশনটি ব্যবহার করতে চান, তাহলেrevisionIDহিসেবেheadব্যবহার করুন।fileIDপ্যারামিটার, মন্তব্য ধারণকারী একটিcommentsরিসোর্স, এবং `revisionID(r) ও `region` (a) ধারণকারী একটি JSON অ্যাঙ্কর স্ট্রিং সহcommentsরিসোর্সের `createমেথডটি কল করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি অ্যাঙ্কর্ড কমেন্ট তৈরি করতে হয়:
পাইথন
from google.oauth2.credentials import Credentials
from googleapiclient.errors import HttpError
# --- Configuration ---
# The ID of the file to comment on.
# Example: '1_aBcDeFgHiJkLmNoPqRsTuVwXyZ'
FILE_ID = 'FILE_ID'
# The text content of the comment.
COMMENT_TEXT = 'This is an example of an anchored comment.'
# The line number to anchor the comment to.
# Note: Line numbers are based on the revision.
ANCHOR_LINE = 10
# --- End of user-configuration section ---
SCOPES = ["https://www.googleapis.com/auth/drive"]
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
def create_anchored_comment():
"""
Create an anchored comment on a specific line in a Google Doc.
Returns:
The created comment object or None if an error occurred.
"""
try:
# Build the Drive API service
service = build("drive", "v3", credentials=creds)
# Define the anchor region for the comment.
# For Google Docs, the region is typically defined by 'line' and 'revision'.
# Other file types might use different region classifiers.
anchor = {
'region': {
'kind': 'drive#commentRegion',
'line': ANCHOR_LINE,
'rev': 'head'
}
}
# The comment body.
comment_body = {
'content': COMMENT_TEXT,
'anchor': anchor
}
# Create the comment request.
comment = (
service.comments()
.create(fileId=FILE_ID, fields="*", body=comment_body)
.execute()
)
print(f"Comment ID: {comment.get('id')}")
return comment
except HttpError as error:
print(f"An error occurred: {error}")
return None
create_anchored_comment()
ড্রাইভ এপিআই comments রিসোর্স অবজেক্টের একটি ইনস্ট্যান্স ফেরত দেয়, যার মধ্যে anchor স্ট্রিং অন্তর্ভুক্ত থাকে।
একটি অ্যাঙ্করবিহীন মন্তব্য যোগ করুন
একটি আনঅ্যাঙ্কর্ড মন্তব্য যোগ করতে, fileId প্যারামিটার এবং মন্তব্যটি ধারণকারী একটি comments রিসোর্স সহ ` create মেথডটি কল করুন।
মন্তব্যটি সাধারণ টেক্সট হিসেবে যুক্ত করা হয়, কিন্তু রেসপন্স বডিতে একটি htmlContent ফিল্ড থাকে, যেখানে প্রদর্শনের জন্য ফরম্যাট করা কন্টেন্ট থাকে।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি আনঅ্যাঙ্কর্ড কমেন্ট তৈরি করতে হয়:
পাইথন
from google.oauth2.credentials import Credentials
from googleapiclient.errors import HttpError
# --- Configuration ---
# The ID of the file to comment on.
# Example: '1_aBcDeFgHiJkLmNoPqRsTuVwXyZ'
FILE_ID = 'FILE_ID'
# The text content of the comment.
COMMENT_TEXT = 'This is an example of an unanchored comment.'
# --- End of user-configuration section ---
SCOPES = ["https://www.googleapis.com/auth/drive"]
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
def create_unanchored_comment():
"""
Create an unanchored comment on a specific line in a Google Doc.
Returns:
The created comment object or None if an error occurred.
"""
try:
# Build the Drive API service
service = build("drive", "v3", credentials=creds)
# The comment body. For an unanchored comment,
# omit the 'anchor' property.
comment_body = {
'content': COMMENT_TEXT
}
# Create the comment request.
comment = (
service.comments()
.create(fileId=FILE_ID, fields="*", body=comment_body)
.execute()
)
print(f"Comment ID: {comment.get('id')}")
return comment
except HttpError as error:
print(f"An error occurred: {error}")
return None
create_unanchored_comment()
একটি মন্তব্যের উত্তর যোগ করুন
কোনো মন্তব্যের উত্তর যোগ করতে, replies রিসোর্সের ` create মেথডটি fileId এবং commentId প্যারামিটারসহ ব্যবহার করুন। রিকোয়েস্ট বডিতে উত্তরটি যোগ করার জন্য ` content ফিল্ডটি ব্যবহৃত হয়।
উত্তরটি সাধারণ টেক্সট হিসেবে যুক্ত করা হয়, কিন্তু রেসপন্স বডিতে একটি htmlContent ফিল্ড থাকে, যেখানে প্রদর্শনের জন্য ফরম্যাট করা কন্টেন্ট থাকে।
এই মেথডটি fields ফিল্ডে তালিকাভুক্ত ফিল্ডগুলো রিটার্ন করে।
অনুরোধ
এই উদাহরণে, আমরা fileId ও commentId পাথ প্যারামিটার এবং একাধিক ফিল্ড প্রদান করেছি।
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
অনুরোধকারী শরীর
{
"content": "This is a reply to a comment."
}একটি মন্তব্য সমাধান করুন
কোনো মন্তব্যের উত্তর দেওয়ার মাধ্যমেই কেবল সেই মন্তব্যের সমাধান করা যায়।
কোনো মন্তব্য সমাধান করতে, replies রিসোর্সের create মেথডটি fileId এবং commentId প্যারামিটারসহ ব্যবহার করুন।
মন্তব্যটি সমাধান করার জন্য অনুরোধের মূল অংশে action ফিল্ডটি ব্যবহৃত হয়। এছাড়াও, মন্তব্যটি বন্ধ করে দেওয়ার জন্য একটি উত্তর যোগ করতে আপনি content ফিল্ডটি সেট করতে পারেন।
যখন কোনো মন্তব্য সমাধান করা হয়, Drive comments রিসোর্সটিকে resolved: true হিসেবে চিহ্নিত করে। মুছে ফেলা মন্তব্যের বিপরীতে, সমাধান করা মন্তব্যে htmlContent বা content ফিল্ড অন্তর্ভুক্ত থাকতে পারে।
যখন আপনার অ্যাপ কোনো মন্তব্যের সমাধান করে, তখন আপনার UI-তে তা উল্লেখ করা উচিত। উদাহরণস্বরূপ, আপনার অ্যাপটি হয়তো:
- পরবর্তী উত্তরগুলো বন্ধ করুন এবং পূর্ববর্তী সমস্ত উত্তর ও মূল মন্তব্যটি ম্লান করে দিন।
- সমাধান করা মন্তব্যগুলো লুকান।
অনুরোধ
এই উদাহরণে, আমরা fileId ও commentId পাথ প্যারামিটার এবং একাধিক ফিল্ড প্রদান করেছি।
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
অনুরোধকারী শরীর
{
"action": "resolve",
"content": "This comment has been resolved."
}একটি মন্তব্য পান
কোনো ফাইলের মন্তব্য পেতে, comments রিসোর্সের get মেথডের সাথে fileId এবং commentId প্যারামিটারগুলো ব্যবহার করুন। যদি আপনি মন্তব্য আইডি না জানেন, তাহলে list মেথড ব্যবহার করে সমস্ত মন্তব্য তালিকাভুক্ত করতে পারেন।
এই মেথডটি একটি comments রিসোর্সের ইনস্ট্যান্স রিটার্ন করে।
ফলাফলে মুছে ফেলা মন্তব্যগুলো অন্তর্ভুক্ত করতে, includedDeleted কোয়েরি প্যারামিটারটি true তে সেট করুন।
অনুরোধ
এই উদাহরণে, আমরা fileId ও commentId পাথ প্যারামিটার এবং একাধিক ফিল্ড প্রদান করেছি।
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment,modifiedTime,resolved
মন্তব্য তালিকাভুক্ত করুন
কোনো ফাইলের মন্তব্যগুলো তালিকাভুক্ত করতে, comments রিসোর্সের ` list মেথডটি fileId প্যারামিটারসহ ব্যবহার করুন। মেথডটি মন্তব্যগুলোর একটি তালিকা ফেরত দেয়।
কমেন্টের পেজিনেশন কাস্টমাইজ করতে বা ফিল্টার করতে নিম্নলিখিত কোয়েরি প্যারামিটারগুলো পাস করুন:
includeDeleted: মুছে ফেলা মন্তব্য অন্তর্ভুক্ত করতে এটিকেtrueতে সেট করুন। মুছে ফেলা মন্তব্যেhtmlContentবাcontentফিল্ড অন্তর্ভুক্ত থাকে না।pageSize: প্রতি পৃষ্ঠায় প্রদর্শিত মন্তব্যের সর্বোচ্চ সংখ্যা।pageToken: পূর্ববর্তী তালিকা আহ্বান থেকে প্রাপ্ত একটি পৃষ্ঠা টোকেন। পরবর্তী পৃষ্ঠাটি পুনরুদ্ধার করতে এই টোকেনটি প্রদান করুন।startModifiedTime: ফলাফলের মন্তব্যের জন্যmodifiedTimeফিল্ডের সর্বনিম্ন মান।
অনুরোধ
এই উদাহরণে, আমরা fileId পাথ প্যারামিটার, includeDeleted কোয়েরি প্যারামিটার এবং একাধিক ফিল্ড প্রদান করেছি।
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments?includeDeleted=true&fields=(id,comment,kind,modifiedTime,resolved)
একটি মন্তব্য আপডেট করুন
কোনো ফাইলের মন্তব্য আপডেট করতে, comments রিসোর্সের update মেথডটি fileId এবং commentId প্যারামিটারসহ ব্যবহার করুন। মন্তব্যটি আপডেট করার জন্য রিকোয়েস্ট বডিতে content ফিল্ডটি ব্যবহৃত হয়।
comments রিসোর্সের ` resolved বুলিয়ান ফিল্ডটি শুধুমাত্র পঠনযোগ্য। কোনো একটি কমেন্টের উত্তরে রিপ্লাই পোস্ট করার মাধ্যমেই কেবল সেই কমেন্টটি সমাধান করা যায়। আরও তথ্যের জন্য, `Resolve a comment` দেখুন।
এই মেথডটি fields কোয়েরি প্যারামিটারে তালিকাভুক্ত ফিল্ডগুলো রিটার্ন করে।
অনুরোধ
এই উদাহরণে, আমরা fileId ও commentId পাথ প্যারামিটার এবং একাধিক ফিল্ড প্রদান করেছি।
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment
অনুরোধকারী শরীর
{
"content": "This comment is now updated."
}একটি মন্তব্য মুছে ফেলুন
কোনো ফাইলের মন্তব্য মুছে ফেলার জন্য, comments রিসোর্সের delete মেথডটি fileId এবং commentId প্যারামিটারসহ ব্যবহার করুন।
যখন কোনো মন্তব্য মুছে ফেলা হয়, Drive মন্তব্য রিসোর্সটিকে deleted: true হিসেবে চিহ্নিত করে। মুছে ফেলা মন্তব্যগুলিতে htmlContent বা content ফিল্ড অন্তর্ভুক্ত থাকে না।
অনুরোধ
এই উদাহরণে, আমরা fileId এবং commentId পাথ প্যারামিটারগুলো প্রদান করেছি।
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID