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

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

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

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

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

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

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

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

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

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

एंकर की गई टिप्पणी जोड़ने के लिए:

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

  2. create तरीका, comments रिसॉर्स पर fileID पैरामीटर, टिप्पणी वाले 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 स्ट्रिंग शामिल होती है.

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

एंकर नहीं की गई टिप्पणी जोड़ने के लिए, create तरीका कॉल करें, जिसमें fileId पैरामीटर और टिप्पणी वाला comments रिसॉर्स शामिल हो.

टिप्पणी को सादे टेक्स्ट के तौर पर जोड़ा जाता है. हालांकि, रिस्पॉन्स के मुख्य हिस्से में, 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()
comments

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

किसी टिप्पणी का जवाब देने के लिए, create तरीका इस्तेमाल करें, replies रिसॉर्स पर 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."
}

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

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

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

अनुरोध के मुख्य हिस्से में, टिप्पणी को बंद करने के लिए 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."
}

कोई टिप्पणी पाना

किसी फ़ाइल पर की गई टिप्पणी पाने के लिए, get तरीका इस्तेमाल करें comments रिसॉर्स पर 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

टिप्पणियां देखना

किसी फ़ाइल पर की गई टिप्पणियां देखने के लिए, list तरीका इस्तेमाल करें comments रिसॉर्स पर 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)

किसी टिप्पणी में बदलाव करना

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

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

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

कोई टिप्पणी मिटाना

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

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

अनुरोध

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

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