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 get pada resource presentations untuk mengambil presentasi, rangkaian komentar dan penanda akan dihilangkan secara default.

Untuk menyertakan komentar dalam respons, tetapkan parameter kueri commentsViewMode ke COMMENTS_VIEW_MODE_INCLUDED. Selain itu, jika pengguna yang memanggil memiliki akses komentar pada file, maka menyetel parameter kueri ke COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS juga akan menampilkan komentar.

Kolom comments dan commentAnchors ditampilkan dalam respons.

Contoh kode berikut menunjukkan cara menggunakan permintaan get yang mengambil rangkaian komentar dan penanda 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 comments global yang berisi objek CommentThread.
  • Array commentAnchors yang berisi objek CommentAnchor yang memetakan ID penanda komentar ke lokasi halaman atau elemen halaman (penanda objek).

Membaca komentar di halaman tertentu

Anda juga dapat mengambil komentar dan penanda 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 menampilkan rangkaian komentar yang ditambatkan 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 batchUpdate pada resource presentations.

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

Menyisipkan komentar

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

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

Contoh JSON berikut menunjukkan cara menambahkan rangkaian komentar yang ditambatkan 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 kolom assigneeEmailAddress:

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

Menambahkan balasan atau mengambil tindakan

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

Anda harus memberikan commentId dan post tempat balasan diwakili oleh objek Post.

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

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

Contoh JSON berikut menunjukkan cara membalas rangkaian komentar yang ada:

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

Contoh JSON berikut menunjukkan cara menyelesaikan rangkaian 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 rangkaian pesan, 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 rangkaian komentar: Untuk menghapus seluruh CommentThread, gunakan objek DeleteCommentRequest. Anda hanya dapat menghapus rangkaian komentar jika Anda adalah penulis rangkaian headPost dalam objek CommentThread.

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

Contoh JSON berikut menunjukkan cara menghapus rangkaian komentar:

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

Status pembaruan komentar

Permintaan yang memerlukan penyimpanan rangkaian 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 dilakukan, tetapi komentar terkait mungkin gagal disimpan.

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

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 dilakukan.