Google Slides permet aux utilisateurs de collaborer en ajoutant des commentaires sur les diapositives et les éléments de page.
Ce document explique comment utiliser l'API Google Slides pour lire, créer, répondre à, modifier ou supprimer des commentaires par programmation.
Lecture de commentaires
Lorsque vous utilisez la
get méthode sur la
presentations
ressource pour récupérer une présentation, les fils de discussion et les ancres de commentaire sont omis par
défaut.
Pour inclure des commentaires dans la réponse, définissez le
commentsViewMode
paramètre de requête sur
COMMENTS_VIEW_MODE_INCLUDED.
De plus, si l'utilisateur appelant dispose d'un accès aux commentaires sur le fichier, la définition du paramètre de requête sur COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS renvoie également des commentaires.
Les champs
comments
et
commentAnchors
sont renvoyés dans la réponse.
L'exemple de code suivant montre comment utiliser une requête get qui récupère les fils de discussion et leurs ancres à partir d'une présentation :
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)
Dans la réponse, les commentaires sont renvoyés à deux emplacements :
- Le tableau
commentsglobal contenant lesCommentThreadobjets. - Le tableau
commentAnchorscontenantCommentAnchordes objets qui associent des ID d'ancres de commentaire à des emplacements d'éléments de page ou de page (ancres d'objet).
Lecture des commentaires sur une page spécifique
Vous pouvez également récupérer les commentaires et les ancres d'une page spécifique à l'aide de la
pages.get méthode sur la
presentations.pages ressource.
Définissez le paramètre de requête commentsViewMode pour inclure les commentaires de la page cible spécifique :
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors
Exemple de réponse
L'exemple de réponse JSON suivant montre un fil de discussion ancré à une plage de texte dans une forme sur une diapositive :
{
"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"
}
Créer et gérer des commentaires
Vous pouvez ajouter, modifier et supprimer des commentaires ou des réponses par programmation à l'aide de la
batchUpdate
méthode sur la
presentations
ressource.
Lorsque vous effectuez des mises à jour par lot impliquant des commentaires, vous devez surveiller les éventuels échecs partiels. Pour en savoir plus, consultez État de la mise à jour des commentaires.
Insérez un commentaire.
Pour insérer un fil de discussion dans une présentation, utilisez l'
InsertCommentRequest
objet. Vous devez fournir le contenu du texte du commentaire et l'emplacement de l'ancre. L'emplacement de l'ancre doit spécifier l'un des éléments suivants :
objectId: ID d'objet d'une diapositive ou d'un élément de page (tel qu'une forme ou un tableau) auquel ancrer le commentaire.shapeTextAnchor: ancre un commentaire à une plage de texte dans une forme.tableCellTextAnchor: ancre un commentaire à une plage de texte dans une cellule de tableau.tableAnchor: ancre un commentaire à une plage de cellules dans un tableau.
L'exemple JSON suivant montre comment ajouter un fil de discussion ancré à une diapositive :
{
"requests": [
{
"insertComment": {
"content": "This is a comment added using the API.",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
Vous pouvez attribuer un commentaire à un utilisateur spécifique en fournissant son adresse e-mail dans le
assigneeEmailAddress
champ :
{
"requests": [
{
"insertComment": {
"content": "Please review this slide.",
"assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
Ajouter une réponse ou effectuer une action
Pour répondre à un fil de discussion, le résoudre ou le rouvrir, utilisez l'
AddCommentReplyRequest
objet.
Vous devez fournir le
commentId
et le
post
, où la réponse est représentée par un
Post objet.
L'Post objet contient le content de la réponse et peut éventuellement spécifier une
commentAction
(y compris l'action permettant de RESOLVE ou de REOPEN le fil de discussion). Il est
représenté par un
CommentActionType
objet.
Vous pouvez également réattribuer un fil de discussion en spécifiant un nouvel assigneeEmail dans l'objet Post.
L'exemple JSON suivant montre comment répondre à un fil de discussion existant :
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"content": "Replying to the comment thread."
}
}
}
]
}
L'exemple JSON suivant montre comment résoudre un fil de discussion :
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"commentAction": "RESOLVE"
}
}
}
]
}
Modifier un article
Pour modifier le contenu textuel d'un post que vous avez créé, utilisez l'
UpdateCommentPostRequest
objet. Vous devez spécifier le commentId du fil de discussion, le postId du post
que vous souhaitez modifier et le nouveau texte brut
content.
L'exemple JSON suivant montre comment modifier un post :
{
"requests": [
{
"updateCommentPost": {
"commentId": "COMMENT_ID",
"postId": "POST_ID",
"content": "This is the updated comment text."
}
}
]
}
Supprimer des commentaires et des réponses
Pour supprimer des commentaires et des réponses, vous avez deux options :
Supprimer un fil de discussion : pour supprimer un
CommentThread, entier, utilisez l'DeleteCommentRequestobjet. Vous ne pouvez supprimer un fil de discussion que si vous êtes l'auteur du filheadPostdans l'objetCommentThread.Supprimer une réponse : pour supprimer une réponse spécifique
Postd'unCommentThread, utilisez l'objetDeleteCommentReplyRequest. Vous ne pouvez supprimer que les réponses que vous avez créées. Vous ne pouvez pas supprimer les posts de réponse qui contiennent unecommentActionou unassigneeEmail.
L'exemple JSON suivant montre comment supprimer un fil de discussion :
{
"requests": [
{
"deleteComment": {
"commentId": "COMMENT_ID"
}
}
]
}
État de la mise à jour des commentaires
Les requêtes qui nécessitent l'enregistrement de fils de discussion (par exemple, l'insertion de commentaires ou l'ajout de réponses) peuvent entraîner des échecs partiels. Dans ce cas, les modifications apportées au modèle de présentation (par exemple, la mise à jour du contenu ou des arrière-plans des diapositives) peuvent être validées, mais les commentaires associés peuvent ne pas être enregistrés.
Pour vérifier si les mises à jour des commentaires ont été appliquées, consultez le
commentUpdateState
champ dans le corps de la réponse de la presentations.batchUpdate méthode. Le champ
est représenté par un
CommentUpdateState
objet.
Les états suivants sont renvoyés dans CommentUpdateState :
NO_UPDATES_REQUESTED: aucune mise à jour de commentaire n'a été demandée dans l'opération par lot.ALL_SAVED: toutes les mises à jour de commentaires demandées ont été appliquées.ALL_FAILED_UNKNOWN_REASON: toutes les mises à jour de commentaires demandées n'ont pas pu être enregistrées, même si d'autres modifications de présentation ont pu être validées.