Kommentare verwalten

In Google Präsentationen können Nutzer zusammenarbeiten, indem sie Folien und Seitenelementen Kommentare hinzufügen.

In diesem Dokument wird beschrieben, wie Sie mit der Google Slides API Kommentare programmatisch lesen, erstellen, beantworten, aktualisieren oder löschen können.

Kommentare lesen

Wenn Sie die Methode get für die Ressource presentations verwenden, um eine Präsentation abzurufen, werden Kommentar-Threads und Anker standardmäßig ausgelassen.

Wenn Sie Kommentare in die Antwort einfügen möchten, setzen Sie den Abfrageparameter commentsViewMode auf COMMENTS_VIEW_MODE_INCLUDED. Wenn der aufrufende Nutzer außerdem Zugriff auf Kommentare für die Datei hat, werden auch Kommentare zurückgegeben, wenn der Abfrageparameter auf COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS gesetzt ist.

Sowohl das Feld comments als auch das Feld commentAnchors werden in der Antwort zurückgegeben.

Das folgende Codebeispiel zeigt, wie Sie eine get-Anfrage verwenden, um Kommentar-Threads und ihre Anker aus einer Präsentation abzurufen:

GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)

In der Antwort werden Kommentare an zwei Stellen zurückgegeben:

  • Das globale comments-Array mit den CommentThread-Objekten.
  • Das Array commentAnchors mit CommentAnchor-Objekten, die Kommentaranker-IDs Seiten- oder Seitenelementpositionen (Objektanker) zuordnen.

Kommentare auf einer bestimmten Seite lesen

Sie können auch Kommentare und Anker für eine bestimmte Seite mit der Methode pages.get für die Ressource presentations.pages abrufen. Legen Sie den Abfrageparameter commentsViewMode fest, um Kommentare für das jeweilige Seitenziel einzuschließen:

GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors

Beispielantwort

Die folgende JSON-Beispielantwort zeigt einen Kommentarthread, der an einen Textbereich in einer Form auf einer Folie angehängt ist:

{
  "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"
}

Kommentare erstellen und verwalten

Mit der Methode batchUpdate in der Ressource presentations können Sie Kommentare oder Antworten programmatisch hinzufügen, bearbeiten und löschen.

Wenn Sie Batch-Updates mit Kommentaren durchführen, sollten Sie auf potenzielle Teilausfälle achten. Weitere Informationen zum Status von Kommentaraktualisierungen

Kommentar einfügen

Wenn Sie einen Kommentarbereich in eine Präsentation einfügen möchten, verwenden Sie das Objekt InsertCommentRequest. Sie müssen den Inhalt des Kommentartexts und die Ankerposition angeben. Für den Anker muss einer der folgenden Werte angegeben werden:

  • objectId: Die Objekt-ID einer Folie oder eines Seitenelements (z. B. einer Form oder Tabelle), an dem der Kommentar verankert werden soll.
  • shapeTextAnchor: Verankert einen Kommentar an einem Textbereich in einer Form.
  • tableCellTextAnchor: Verankert einen Kommentar an einem Textbereich in einer Tabellenzelle.
  • tableAnchor: Verankert einen Kommentar in einem Zellbereich in einer Tabelle.

Das folgende JSON-Beispiel zeigt, wie Sie einen Kommentarthread hinzufügen, der an einer Folie verankert ist:

{
  "requests": [
    {
      "insertComment": {
        "content": "This is a comment added using the API.",
        "objectId": "SLIDE_PAGE_ID"
      }
    }
  ]
}

Sie können einen Kommentar einem bestimmten Nutzer zuweisen, indem Sie seine E-Mail-Adresse im Feld assigneeEmailAddress angeben:

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

Antwort hinzufügen oder Maßnahmen ergreifen

Wenn Sie auf einen Kommentarthread antworten, ihn schließen oder wieder öffnen möchten, verwenden Sie das Objekt AddCommentReplyRequest.

Sie müssen die commentId und die post angeben, wobei die Antwort durch ein Post-Objekt dargestellt wird.

Das Objekt Post enthält die Antwort content und kann optional eine commentAction angeben (einschließlich der Aktion zum RESOLVE oder REOPEN des Kommentarbereichs). Sie wird durch ein CommentActionType-Objekt dargestellt.

Sie können einen Kommentarthread auch neu zuweisen, indem Sie ein neues assigneeEmail-Element im Post-Objekt angeben.

Das folgende JSON-Beispiel zeigt, wie Sie auf einen vorhandenen Kommentarstrang antworten:

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

Das folgende JSON-Beispiel zeigt, wie ein Kommentarthread geschlossen wird:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "commentAction": "RESOLVE"
        }
      }
    }
  ]
}

Beitrag bearbeiten

Wenn Sie den Textinhalt eines von Ihnen erstellten Beitrags bearbeiten möchten, verwenden Sie das Objekt UpdateCommentPostRequest. Sie müssen die commentId des Threads, die postId des Beitrags, den Sie bearbeiten möchten, und den neuen Nur-Text content angeben.

Das folgende JSON-Beispiel zeigt, wie Sie einen Beitrag bearbeiten:

{
  "requests": [
    {
      "updateCommentPost": {
        "commentId": "COMMENT_ID",
        "postId": "POST_ID",
        "content": "This is the updated comment text."
      }
    }
  ]
}

Kommentare und Antworten löschen

Du hast zwei Möglichkeiten, Kommentare und Antworten zu löschen:

  • Kommentar-Thread löschen:Wenn Sie einen gesamten CommentThread entfernen möchten, verwenden Sie das Objekt DeleteCommentRequest. Sie können einen Kommentar-Thread nur löschen, wenn Sie der Autor des headPost des Threads im CommentThread-Objekt sind.

  • Antwort löschen:Wenn Sie eine bestimmte Antwort Post aus einem CommentThread löschen möchten, verwenden Sie das Objekt DeleteCommentReplyRequest. Sie können nur Antworten löschen, die Sie selbst verfasst haben. Sie können keine Antwortbeiträge löschen, die ein commentAction oder ein assigneeEmail enthalten.

Das folgende JSON-Beispiel zeigt, wie ein Kommentarthread gelöscht wird:

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

Status von Kommentarupdates

Bei Anfragen, bei denen Kommentar-Threads gespeichert werden müssen (z. B. beim Einfügen von Kommentaren oder beim Hinzufügen von Antworten), kann es zu teilweisen Fehlern kommen. In diesen Fällen werden die Änderungen am Präsentationsmodell (z. B. Aktualisieren von Folieninhalten oder Hintergründen) möglicherweise erfolgreich übernommen, die zugehörigen Kommentare werden jedoch nicht gespeichert.

Sie können prüfen, ob Kommentaraktualisierungen erfolgreich angewendet wurden, indem Sie das Feld commentUpdateState im Antworttext der presentations.batchUpdate-Methode prüfen. Das Feld wird durch ein CommentUpdateState-Objekt dargestellt.

Die folgenden Status werden in CommentUpdateState zurückgegeben:

  • NO_UPDATES_REQUESTED: Im Batchvorgang wurden keine Kommentaraktualisierungen angefordert.
  • ALL_SAVED: Alle angeforderten Kommentaraktualisierungen wurden erfolgreich angewendet.
  • ALL_FAILED_UNKNOWN_REASON: Alle angeforderten Kommentaraktualisierungen konnten nicht gespeichert werden, obwohl andere Änderungen an der Präsentation möglicherweise übernommen wurden.