Mengelola komentar

Google Slide memungkinkan pengguna berkolaborasi dengan menambahkan komentar pada slide dan elemen halaman.

Dokumen ini menunjukkan cara menggunakan Google Slides API untuk membaca, membuat, membalas, memperbarui, atau menghapus komentar secara terprogram.

Membaca komentar

Saat Anda menggunakan metode pada resource untuk mengambil presentasi, thread komentar dan anchor akan dihilangkan secara default.getpresentations

Untuk menyertakan komentar dalam respons, tetapkan parameter kueri ke.commentsViewModeCOMMENTS_VIEW_MODE_INCLUDED Selain itu, jika pengguna yang melakukan panggilan memiliki akses komentar pada file, menetapkan parameter kueri ke COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS juga akan menampilkan komentar.

Kolom comments dan commentAnchors akan ditampilkan dalam respons.

Contoh kode berikut menunjukkan cara menggunakan permintaan get yang mengambil thread komentar dan anchor-nya dari presentasi:

GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)

Dalam respons, komentar ditampilkan di dua lokasi:

  • Array global comments yang berisi objek CommentThread.
  • Array commentAnchors yang berisi CommentAnchor objek yang memetakan ID anchor komentar ke lokasi halaman atau elemen halaman (anchor objek).

Membaca komentar di halaman tertentu

Anda juga dapat mengambil komentar dan anchor untuk halaman tertentu menggunakan metode pages.get pada resource presentations.pages. Tetapkan parameter kueri commentsViewMode untuk menyertakan komentar untuk target halaman tertentu:

GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors

Contoh respons

Contoh respons JSON berikut menunjukkan thread komentar yang di-anchor ke rentang teks dalam bentuk di halaman slide:

{
  "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"
}

Membuat dan mengelola komentar

Anda dapat menambahkan, mengedit, dan menghapus komentar atau balasan secara terprogram menggunakan metode pada resource.batchUpdatepresentations

Saat melakukan pembaruan batch yang melibatkan komentar, Anda harus memantau potensi kegagalan sebagian. Untuk mengetahui informasi selengkapnya, lihat Status pembaruan komentar.

Menyisipkan komentar

Untuk menyisipkan thread komentar ke dalam presentasi, gunakan objek InsertCommentRequest. Anda harus memberikan konten teks komentar dan lokasi anchor. Lokasi anchor harus menentukan salah satu hal berikut:

  • objectId: ID objek halaman slide atau elemen halaman (seperti bentuk atau tabel) untuk meng-anchor komentar.
  • shapeTextAnchor: Meng-anchor komentar ke rentang teks dalam bentuk.
  • tableCellTextAnchor: Meng-anchor komentar ke rentang teks dalam sel tabel.
  • tableAnchor: Meng-anchor komentar ke rentang sel dalam tabel.

Contoh JSON berikut menunjukkan cara menambahkan thread komentar yang di-anchor ke halaman slide:

{
  "requests": [
    {
      "insertComment": {
        "content": "This is a comment added using the API.",
        "objectId": "SLIDE_PAGE_ID"
      }
    }
  ]
}

Anda dapat menetapkan komentar kepada pengguna tertentu dengan memberikan emailnya di assigneeEmailAddress kolom:

{
  "requests": [
    {
      "insertComment": {
        "content": "Please review this slide.",
        "assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
        "objectId": "SLIDE_PAGE_ID"
      }
    }
  ]
}

Menambahkan balasan atau mengambil tindakan

Untuk membalas thread komentar, menyelesaikan, atau membuka kembali thread, gunakan objek AddCommentReplyRequest.

Anda harus memberikan the commentId and the post where the reply is represented by a Post object.

Objek Post berisi content balasan dan secara opsional dapat menentukan commentAction (termasuk tindakan untuk RESOLVE atau REOPEN thread komentar). Objek ini direpresentasikan oleh objek CommentActionType object.

Anda juga dapat menetapkan ulang thread komentar dengan menentukan assigneeEmail baru dalam objek Post.

Contoh JSON berikut menunjukkan cara membalas thread komentar yang ada:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "content": "Replying to the comment thread."
        }
      }
    }
  ]
}

Contoh JSON berikut menunjukkan cara menyelesaikan thread komentar:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "commentAction": "RESOLVE"
        }
      }
    }
  ]
}

Mengedit postingan

Untuk mengedit konten teks postingan yang Anda buat, gunakan objek UpdateCommentPostRequest. Anda harus menentukan commentId thread, postId postingan yang ingin Anda edit, dan teks biasa baru content.

Contoh JSON berikut menunjukkan cara mengedit postingan:

{
  "requests": [
    {
      "updateCommentPost": {
        "commentId": "COMMENT_ID",
        "postId": "POST_ID",
        "content": "This is the updated comment text."
      }
    }
  ]
}

Menghapus komentar dan balasan

Untuk menghapus komentar dan balasan, Anda memiliki dua opsi:

  • Menghapus thread komentar: Untuk menghapus seluruh CommentThread, gunakan objek DeleteCommentRequest. Anda hanya dapat menghapus thread komentar jika Anda adalah penulis thread's headPost dalam objek CommentThread.

  • Menghapus balasan: Untuk menghapus balasan tertentu Post dari CommentThread, gunakan DeleteCommentReplyRequest objek. Anda hanya dapat menghapus balasan yang Anda buat. Anda tidak dapat menghapus postingan balasan yang berisi commentAction atau assigneeEmail.

Contoh JSON berikut menunjukkan cara menghapus thread komentar:

{
  "requests": [
    {
      "deleteComment": {
        "commentId": "COMMENT_ID"
      }
    }
  ]
}

Status pembaruan komentar

Permintaan yang mengharuskan penyimpanan thread komentar (seperti menyisipkan komentar atau menambahkan balasan) mungkin mengalami kegagalan sebagian. Dalam kasus ini, perubahan model presentasi (seperti memperbarui konten atau latar belakang slide) mungkin berhasil diterapkan, tetapi komentar terkait mungkin gagal disimpan.

Anda dapat memverifikasi apakah pembaruan komentar berhasil diterapkan dengan memeriksa commentUpdateState kolom di isi respons metode presentations.batchUpdate. Kolom direpresentasikan oleh CommentUpdateState objek.

Status berikut ditampilkan di CommentUpdateState:

  • NO_UPDATES_REQUESTED: Tidak ada pembaruan komentar yang diminta dalam operasi batch.
  • ALL_SAVED: Semua pembaruan komentar yang diminta berhasil diterapkan.
  • ALL_FAILED_UNKNOWN_REASON: Semua pembaruan komentar yang diminta gagal disimpan, meskipun perubahan presentasi lainnya mungkin telah diterapkan.