O Slides Google permite que os usuários colaborem adicionando comentários em slides e elementos de página.
Este documento mostra como usar a API Google Slides para ler, criar, responder, atualizar ou excluir comentários de maneira programática.
Ler comentários
Quando você usa o
get método no
presentations
recurso para recuperar uma apresentação, as conversas e as âncoras de comentários são omitidas por
padrão.
Para incluir comentários na resposta, defina o
commentsViewMode
parâmetro de consulta como
COMMENTS_VIEW_MODE_INCLUDED.
Além disso, se o usuário que está fazendo a chamada tiver acesso de comentários no arquivo, definir o parâmetro de consulta como COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS também retornará comentários.
Os campos
comments
e
commentAnchors
são retornados na resposta.
O exemplo de código a seguir mostra como usar uma solicitação get que recupera conversas e as âncoras delas de uma apresentação:
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)
Na resposta, os comentários são retornados em dois locais:
- A matriz global
commentsque contém osCommentThreadobjetos. - A matriz
commentAnchorsque contémCommentAnchorobjetos que mapeiam IDs de âncoras de comentários para locais de páginas ou elementos de páginas (âncoras de objetos).
Ler comentários em uma página específica
Também é possível recuperar comentários e âncoras de uma página específica usando o
pages.get método no
presentations.pages recurso.
Defina o parâmetro de consulta commentsViewMode para incluir comentários para o destino da página específica:
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors
Exemplo de resposta
O exemplo de resposta JSON a seguir mostra uma conversa de comentários ancorada a um intervalo de texto em uma forma em uma página de 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"
}
Criar e gerenciar comentários
É possível adicionar, editar e excluir comentários ou respostas de maneira programática usando o
batchUpdate
método no
presentations
recurso.
Ao realizar atualizações em lote que envolvem comentários, monitore possíveis falhas parciais. Para mais informações, consulte Status da atualização de comentários.
Inserir um comentário
Para inserir uma conversa de comentários em uma apresentação, use o
InsertCommentRequest
objeto. Você precisa fornecer o conteúdo do texto do comentário e o local da âncora. O local da âncora precisa especificar um dos seguintes:
objectId: o ID do objeto de uma página de slide ou de um elemento de página (como uma forma ou tabela) para ancorar o comentário.shapeTextAnchor: ancora um comentário a um intervalo de texto em uma forma.tableCellTextAnchor: ancora um comentário a um intervalo de texto em uma célula de tabela.tableAnchor: ancora um comentário a um intervalo de células em uma tabela.
O exemplo JSON a seguir mostra como adicionar uma conversa de comentários ancorada a uma página de slide:
{
"requests": [
{
"insertComment": {
"content": "This is a comment added using the API.",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
É possível atribuir um comentário a um usuário específico fornecendo o e-mail dele no
assigneeEmailAddress
campo:
{
"requests": [
{
"insertComment": {
"content": "Please review this slide.",
"assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
Adicionar uma resposta ou realizar uma ação
Para responder a uma conversa de comentários, resolver ou reabrir uma conversa, use o
AddCommentReplyRequest
objeto.
Você precisa fornecer o
commentId
e o
post
em que a resposta é representada por um objeto
Post.
O objeto Post contém o content da resposta e, opcionalmente, pode especificar um
commentAction
(incluindo a ação para RESOLVE ou REOPEN a conversa de comentários). Ele é
representado por um
CommentActionType
objeto.
Também é possível reatribuir uma conversa de comentários especificando um novo assigneeEmail no objeto Post.
O exemplo JSON a seguir mostra como responder a uma conversa de comentários:
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"content": "Replying to the comment thread."
}
}
}
]
}
O exemplo JSON a seguir mostra como resolver uma conversa de comentários:
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"commentAction": "RESOLVE"
}
}
}
]
}
Editar uma postagem
Para editar o conteúdo de texto de uma postagem criada por você, use o
UpdateCommentPostRequest
objeto. Você precisa especificar o commentId da conversa, o postId da postagem
que quer editar e o novo texto simples
content.
O exemplo JSON a seguir mostra como editar uma postagem:
{
"requests": [
{
"updateCommentPost": {
"commentId": "COMMENT_ID",
"postId": "POST_ID",
"content": "This is the updated comment text."
}
}
]
}
Excluir comentários e respostas
Para excluir comentários e respostas, você tem duas opções:
Excluir uma conversa de comentários: Para remover uma
CommentThreadinteira, use o objetoDeleteCommentRequest. Só é possível excluir uma conversa de comentários se você for o autor da conversaheadPostno objetoCommentThread.Excluir uma resposta: Para excluir uma resposta específica
Postde umCommentThread, use oDeleteCommentReplyRequestobjeto. Só é possível excluir respostas criadas por você. Não é possível excluir postagens de resposta que contenham umcommentActionou umassigneeEmail.
O exemplo JSON a seguir mostra como excluir uma conversa de comentários:
{
"requests": [
{
"deleteComment": {
"commentId": "COMMENT_ID"
}
}
]
}
Status da atualização de comentários
As solicitações que exigem salvar conversas de comentários (como inserir comentários ou adicionar respostas) podem apresentar falhas parciais. Nesses casos, as mudanças no modelo de apresentação (como atualizar o conteúdo ou os planos de fundo dos slides) podem ser confirmadas, mas os comentários associados podem não ser salvos.
É possível verificar se as atualizações de comentários foram aplicadas consultando o
commentUpdateState
campo no corpo da resposta do método presentations.batchUpdate. O campo
é representado por um
CommentUpdateState
objeto.
Os estados a seguir são retornados em CommentUpdateState:
NO_UPDATES_REQUESTED: nenhuma atualização de comentário foi solicitada na operação em lote.ALL_SAVED: todas as atualizações de comentários solicitadas foram aplicadas.ALL_FAILED_UNKNOWN_REASON: todas as atualizações de comentários solicitadas não foram salvas, mesmo que outras mudanças de apresentação tenham sido confirmadas.