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
commentsglobal yang berisi objekCommentThread. - Array
commentAnchorsyang berisi objekCommentAnchoryang 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 objekDeleteCommentRequest. Anda hanya dapat menghapus rangkaian komentar jika Anda adalah penulis rangkaianheadPostdalam objekCommentThread.Menghapus balasan: Untuk menghapus balasan spesifik
PostdariCommentThread, gunakan objekDeleteCommentReplyRequest. Anda hanya dapat menghapus balasan yang Anda tulis. Anda tidak dapat menghapus postingan balasan yang berisicommentActionatauassigneeEmail.
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.