จัดการความคิดเห็นและการตอบกลับ

ความคิดเห็นคือความคิดเห็นที่ผู้ใช้ระบุไว้ในไฟล์ เช่น ผู้อ่านเอกสารประมวลผลคำที่แนะนำวิธีเรียบเรียงประโยคใหม่ ความคิดเห็นมี 2 ประเภท ได้แก่ ความคิดเห็นที่ยึดตำแหน่งและความคิดเห็นที่ไม่ได้ยึดตำแหน่ง ความคิดเห็นที่ยึดตามตำแหน่งจะเชื่อมโยงกับตำแหน่งที่เฉพาะเจาะจง เช่น ประโยคในเอกสารประมวลคำ ภายในเอกสารเวอร์ชันที่เฉพาะเจาะจง ในทางกลับกัน ความคิดเห็นที่ไม่ได้ยึดโยงจะเชื่อมโยงกับเอกสารเท่านั้น

การตอบกลับจะแนบไปกับความคิดเห็นและแสดงถึงการตอบกลับความคิดเห็นของ ผู้ใช้ Drive API ช่วยให้ผู้ใช้เพิ่มความคิดเห็นและตอบกลับเอกสารที่แอปของคุณสร้างขึ้นได้ ความคิดเห็นที่มีการตอบกลับจะเรียกรวมกันว่าการสนทนา

ใช้พารามิเตอร์ฟิลด์

สำหรับทุกเมธอด (ยกเว้น delete) ในทรัพยากร comments คุณต้องตั้งค่า fields พารามิเตอร์ระบบเพื่อ ระบุช่องที่จะแสดงผลในการตอบกลับ ในเมธอดของทรัพยากร Drive ส่วนใหญ่ การดำเนินการนี้จำเป็นต่อการแสดงช่องที่ไม่ใช่ค่าเริ่มต้นเท่านั้น แต่ จำเป็นสำหรับทรัพยากร comments หากคุณละเว้นพารามิเตอร์ fields เมธอดจะแสดงข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่แสดงผลฟิลด์ที่เฉพาะเจาะจง

ข้อจำกัดของความคิดเห็น

ข้อจำกัดต่อไปนี้จะมีผลเมื่อทำงานกับความคิดเห็นที่ยึดและไม่ยึด ตำแหน่งด้วย Drive API

ประเภทความคิดเห็น ประเภทไฟล์
ยึด
  • นักพัฒนาแอปสามารถกำหนดรูปแบบของตนเองสำหรับการระบุตำแหน่งยึดได้
  • ระบบจะบันทึกและแสดงแองเคอร์เมื่อดึงความคิดเห็น แต่แอปเครื่องมือแก้ไข Google Workspace จะถือว่าความคิดเห็นเหล่านี้เป็นความคิดเห็นที่ไม่มีแองเคอร์
ไม่ได้ยึด
  • ฟีเจอร์นี้ใช้ได้กับเอกสาร Google Workspace ซึ่งจะแสดงความคิดเห็นในมุมมอง "ความคิดเห็นทั้งหมด"
  • ความคิดเห็นที่ไม่ได้ยึดจะไม่มีแสดงในไฟล์ PDF ที่แสดงในโปรแกรมแสดงตัวอย่างไฟล์ของไดรฟ์ แต่ระบบจะบันทึกความคิดเห็นดังกล่าวและเรียกข้อมูลผ่าน Drive API ได้

เพิ่มความคิดเห็นที่ยึดกับข้อความในเอกสารฉบับแก้ไขล่าสุด

เมื่อเพิ่มความคิดเห็น คุณอาจต้องการยึดความคิดเห็นนั้นไว้กับภูมิภาคในไฟล์ Anchor จะกำหนดภูมิภาคในไฟล์ที่ความคิดเห็นอ้างอิงถึง ทรัพยากร comments จะกำหนดฟิลด์ anchor เป็นสตริง JSON

วิธีเพิ่มความคิดเห็นที่ยึดตำแหน่ง

  1. (ไม่บังคับ) เรียกใช้เมธอด list ใน ทรัพยากร revisions เพื่อแสดงรายการrevisionID ทั้งหมดของเอกสาร ทำตามขั้นตอนนี้เฉพาะในกรณีที่คุณต้องการยึด ความคิดเห็นไว้กับฉบับแก้ไขอื่นที่ไม่ใช่ฉบับแก้ไขล่าสุด หากต้องการใช้การแก้ไขล่าสุด ให้ใช้ head สำหรับ revisionID

  2. เรียกใช้เมธอด create ในแหล่งข้อมูล comments ด้วยพารามิเตอร์ fileID แหล่งข้อมูล comments ที่มีความคิดเห็น และสตริง Anchor JSON ที่มี revisionID (r) และภูมิภาค (a)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างความคิดเห็นที่ยึดตำแหน่ง

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

ตอบกลับความคิดเห็น

หากต้องการเพิ่มคำตอบในความคิดเห็น ให้ใช้วิธีการ 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 เพื่อเพิ่มการตอบกลับที่ปิดความคิดเห็นได้ด้วย

เมื่อมีการแก้ไขความคิดเห็น ไดรฟ์จะทำเครื่องหมาย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."
}

รับความคิดเห็น

หากต้องการดูความคิดเห็นในไฟล์ ให้ใช้เมธอด 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: โทเค็นหน้าเว็บที่ได้รับจากการเรียกใช้ list ก่อนหน้า ระบุโทเค็นนี้ เพื่อดึงข้อมูลหน้าถัดไป

  • 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

เมื่อลบความคิดเห็น ไดรฟ์จะทำเครื่องหมายทรัพยากรความคิดเห็นเป็น deleted: true ความคิดเห็นที่ถูกลบจะไม่มีช่อง htmlContent หรือ content

คำขอ

ในตัวอย่างนี้ เราจะระบุพารามิเตอร์เส้นทาง fileId และ commentId

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