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
commentsyang berisi objekCommentThread. - Array
commentAnchorsyang berisiCommentAnchorobjek 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 objekDeleteCommentRequest. Anda hanya dapat menghapus thread komentar jika Anda adalah penulis thread'sheadPostdalam objekCommentThread.Menghapus balasan: Untuk menghapus balasan tertentu
PostdariCommentThread, gunakanDeleteCommentReplyRequestobjek. Anda hanya dapat menghapus balasan yang Anda buat. Anda tidak dapat menghapus postingan balasan yang berisicommentActionatauassigneeEmail.
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.