टिप्पणियां और जवाब मैनेज करना

टिप्पणियां, किसी फ़ाइल के बारे में उपयोगकर्ता से मिले सुझाव/राय या शिकायत होती है. जैसे, वर्ड प्रोसेसिंग दस्तावेज़ पढ़ने वाला कोई व्यक्ति, किसी वाक्य को फिर से लिखने का सुझाव देता है. टिप्पणियां दो तरह की होती हैं: ऐंकर की गई टिप्पणियां और ऐंकर नहीं की गई टिप्पणियां. ऐंकर की गई टिप्पणी, किसी खास जगह से जुड़ी होती है. जैसे, किसी दस्तावेज़ के किसी वर्शन में मौजूद वर्ड-प्रोसेसिंग दस्तावेज़ का कोई वाक्य. इसके उलट, किसी टेक्स्ट से न जुड़ी टिप्पणी सिर्फ़ दस्तावेज़ से जुड़ी होती है.

जवाब, टिप्पणियों से जुड़े होते हैं. इनसे पता चलता है कि किसी व्यक्ति ने टिप्पणी का जवाब दिया है. Drive API की मदद से, आपके ऐप्लिकेशन से बनाए गए दस्तावेज़ों में टिप्पणियां और जवाब जोड़े जा सकते हैं. टिप्पणियों और उनके जवाबों को मिलाकर, बातचीत कहा जाता है.

फ़ील्ड पैरामीटर का इस्तेमाल करना

comments रिसॉर्स पर मौजूद सभी तरीकों (delete को छोड़कर) के लिए, आपको fields सिस्टम पैरामीटर को सेट करना ज़रूरी है. इससे यह तय किया जा सकेगा कि रिस्पॉन्स में कौनसे फ़ील्ड दिखाए जाएं. Drive के ज़्यादातर संसाधन तरीकों में, इस कार्रवाई की ज़रूरत सिर्फ़ उन फ़ील्ड को वापस लाने के लिए होती है जो डिफ़ॉल्ट नहीं हैं. हालांकि, comments संसाधन के लिए यह ज़रूरी है. fields पैरामीटर शामिल न करने पर, यह तरीका गड़बड़ी का मैसेज दिखाता है. ज़्यादा जानकारी के लिए, चुनिंदा फ़ील्ड की वैल्यू वापस पाना लेख पढ़ें.

टिप्पणी करने से जुड़ी पाबंदियां

Drive API के साथ ऐंकर की गई और ऐंकर नहीं की गई टिप्पणियों का इस्तेमाल करते समय, ये पाबंदियां लागू होती हैं:

टिप्पणी किस तरह की है फ़ाइल टाइप
ऐंकर किया गया
  • डेवलपर, ऐंकर स्पेसिफ़िकेशन के लिए अपना फ़ॉर्मैट तय कर सकते हैं.
  • टिप्पणी को वापस पाने पर, ऐंकर सेव हो जाता है और वापस आ जाता है. हालांकि, Google Workspace के एडिटर ऐप्लिकेशन इन टिप्पणियों को बिना ऐंकर वाली टिप्पणियों के तौर पर मानते हैं.
अनऐंकर्ड
  • यह सुविधा, Google Workspace के दस्तावेज़ों के साथ काम करती है. इससे टिप्पणियां, "सभी टिप्पणियां" व्यू में दिखेंगी.
  • Drive में फ़ाइल की झलक दिखाने वाले व्यूअर में रेंडर किए गए PDF पर, बिना ऐंकर वाली टिप्पणियां नहीं दिखती हैं. हालांकि, ये टिप्पणियां सेव हो जाती हैं और Drive API के ज़रिए इन्हें वापस पाया जा सकता है.

दस्तावेज़ के नए वर्शन में, ऐंकर की गई टिप्पणी जोड़ना

टिप्पणी जोड़ते समय, आपको उसे फ़ाइल के किसी हिस्से से जोड़ना पड़ सकता है. ऐंकर, फ़ाइल में उस जगह को तय करता है जिसके बारे में टिप्पणी की गई है. comments संसाधन, anchor फ़ील्ड को JSON स्ट्रिंग के तौर पर तय करता है.

किसी जगह से जुड़ी टिप्पणी जोड़ने के लिए:

  1. (ज़रूरी नहीं). किसी दस्तावेज़ के लिए हर revisionID की सूची बनाने के लिए, revisions संसाधन पर list तरीके को कॉल करें. इस चरण को सिर्फ़ तब अपनाएं, जब आपको किसी टिप्पणी को सबसे नए वर्शन के अलावा किसी दूसरे वर्शन से जोड़ना हो. अगर आपको सबसे नया वर्शन इस्तेमाल करना है, तो revisionID के लिए head का इस्तेमाल करें.

  2. fileID पैरामीटर के साथ comments संसाधन पर create तरीके को कॉल करें. इसमें comments संसाधन में टिप्पणी और revisionID (r) और क्षेत्र (a) वाली JSON ऐंकर स्ट्रिंग शामिल होती है.

नीचे दिए गए कोड सैंपल में, ऐंकर की गई टिप्पणी बनाने का तरीका बताया गया है:

Python


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()

Drive API, comments संसाधन ऑब्जेक्ट का एक इंस्टेंस दिखाता है. इसमें anchor स्ट्रिंग शामिल होती है.

बिना ऐंकर की गई टिप्पणी जोड़ना

बिना ऐंकर वाली टिप्पणी जोड़ने के लिए, fileId पैरामीटर और टिप्पणी वाला comments संसाधन इस्तेमाल करके create तरीके को कॉल करें.

टिप्पणी को सादे टेक्स्ट के तौर पर डाला जाता है. हालांकि, जवाब के मुख्य हिस्से में htmlContent फ़ील्ड होता है. इसमें दिखाने के लिए फ़ॉर्मैट किया गया कॉन्टेंट होता है.

यहां दिए गए कोड सैंपल में, बिना ऐंकर वाली टिप्पणी बनाने का तरीका बताया गया है:

Python


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()

किसी टिप्पणी का जवाब देना

किसी टिप्पणी का जवाब देने के लिए, fileId और commentId पैरामीटर के साथ replies संसाधन पर create तरीके का इस्तेमाल करें. अनुरोध के मुख्य भाग में, जवाब जोड़ने के लिए 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."
}

किसी टिप्पणी को बंद करना

किसी टिप्पणी को सिर्फ़ उसका जवाब देकर हल किया जा सकता है.

किसी टिप्पणी का समाधान करने के लिए, fileId और commentId पैरामीटर के साथ replies संसाधन पर create तरीका इस्तेमाल करें.

अनुरोध के मुख्य हिस्से में, टिप्पणी को हल करने के लिए action फ़ील्ड का इस्तेमाल किया जाता है. content फ़ील्ड को सेट करके, ऐसा जवाब भी जोड़ा जा सकता है जिससे टिप्पणी बंद हो जाए.

जब किसी टिप्पणी का समाधान हो जाता है, तो Drive उस comments संसाधन को resolved: true के तौर पर मार्क कर देता है. मिटाई गई टिप्पणियों के उलट, बंद की गई टिप्पणियों में htmlContent या content फ़ील्ड शामिल हो सकते हैं.

जब आपका ऐप्लिकेशन किसी टिप्पणी को हल कर लेता है, तो आपके यूज़र इंटरफ़ेस (यूआई) में यह दिखना चाहिए कि टिप्पणी को हल कर दिया गया है. उदाहरण के लिए, आपका ऐप्लिकेशन:

  • आगे जवाब देने की अनुमति न दें. साथ ही, पिछली सभी टिप्पणियों और मूल टिप्पणी को धुंधला कर दें.
  • वे टिप्पणियां छिपाएं जिनका समाधान हो गया है.

अनुरोध

इस उदाहरण में, हमने 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)

किसी टिप्पणी को अपडेट करना

किसी फ़ाइल पर की गई टिप्पणी को अपडेट करने के लिए, fileId और commentId पैरामीटर के साथ comments संसाधन पर update तरीके का इस्तेमाल करें. अनुरोध के मुख्य हिस्से में, टिप्पणी को अपडेट करने के लिए content फ़ील्ड का इस्तेमाल किया जाता है.

comments संसाधन पर मौजूद बूलियन resolved फ़ील्ड को सिर्फ़ पढ़ा जा सकता है. किसी टिप्पणी को सिर्फ़ तब बंद किया जा सकता है, जब उसका जवाब दिया गया हो. ज़्यादा जानकारी के लिए, टिप्पणी हल करना लेख पढ़ें.

यह तरीका, 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."
}

टिप्पणी मिटाना

किसी फ़ाइल पर की गई टिप्पणी को मिटाने के लिए, fileId और commentId पैरामीटर के साथ comments संसाधन पर delete तरीके का इस्तेमाल करें.

किसी टिप्पणी को मिटाने पर, Drive टिप्पणी के संसाधन को deleted: true के तौर पर मार्क करता है. मिटाई गई टिप्पणियों में htmlContent या content फ़ील्ड शामिल नहीं होते.

अनुरोध

इस उदाहरण में, हमने fileId और commentId पाथ पैरामीटर दिए हैं.

DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID