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 get Methode für die presentations Ressource verwenden, um eine Präsentation abzurufen, werden Kommentarthreads und Anker standardmäßig ausgelassen.

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

Sowohl die comments als auch die commentAnchors Felder werden in der Antwort zurückgegeben.

Das folgende Codebeispiel zeigt, wie Sie eine get-Anfrage verwenden, um Kommentarthreads 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 commentAnchors Array mit CommentAnchor Objekten, die Kommentaranker-IDs Seiten- oder Seitenelementpositionen (Objektanker) zuordnen.

Kommentare auf einer bestimmten Seite lesen

Sie können Kommentare und Anker auch für eine bestimmte Seite abrufen. Verwenden Sie dazu die pages.get Methode für die presentations.pages Ressource. Setzen Sie den Abfrageparameter commentsViewMode, um Kommentare für das spezifische Seitenziel einzubeziehen:

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 verankert 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 für die Ressource presentations können Sie Kommentare oder Antworten programmatisch hinzufügen, bearbeiten und löschen.

Bei Batch-Aktualisierungen mit Kommentaren sollten Sie auf mögliche Teilausfälle achten. Weitere Informationen finden Sie unter Status der Kommentaraktualisierung.

Kommentar einfügen

Verwenden Sie das InsertCommentRequest Objekt, um einen Kommentarthread in eine Präsentation einzufügen. Sie müssen den Kommentartext und die Ankerposition angeben. Die Ankerposition muss eine der folgenden Optionen angeben:

  • 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 an 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 assigneeEmailAddress Feld angeben:

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

Antwort hinzufügen oder Aktion ausführen

Verwenden Sie das AddCommentReplyRequest Objekt, um auf einen Kommentarthread zu antworten, ihn zu schließen oder wieder zu öffnen.

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

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

Sie können einen Kommentarthread auch neu zuweisen, indem Sie im Post-Objekt eine neue assigneeEmail angeben.

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

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

Das folgende JSON-Beispiel zeigt, wie Sie einen Kommentarthread schließen:

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

Posts bearbeiten

Verwenden Sie das UpdateCommentPostRequest Objekt, um den Text eines von Ihnen erstellten Posts zu bearbeiten. Sie müssen die commentId des Threads, die postId des Posts den Sie bearbeiten möchten, und den neuen Nur-Text content angeben.

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

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

Kommentare und Antworten löschen

Sie haben zwei Möglichkeiten, Kommentare und Antworten zu löschen:

  • Kommentarthread löschen: Verwenden Sie das DeleteCommentRequest Objekt, um einen gesamten CommentThread zu entfernen. Sie können einen Kommentarthread nur löschen, wenn Sie der Autor des Threads headPost im CommentThread Objekt sind.

  • Antwort löschen: Verwenden Sie das DeleteCommentReplyRequest Objekt, um einen bestimmten Antwort-Post aus einem CommentThread zu löschen. Sie können nur Antworten löschen, die Sie selbst verfasst haben. Antwort-Posts, die eine commentAction oder eine assigneeEmail enthalten, können nicht gelöscht werden.

Das folgende JSON-Beispiel zeigt, wie Sie einen Kommentarthread löschen:

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

Status der Kommentaraktualisierung

Bei Anfragen, bei denen Kommentarthreads gespeichert werden müssen (z. B. beim Einfügen von Kommentaren oder Hinzufügen von Antworten), kann es zu Teilausfällen 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 können aber nicht gespeichert werden.

Sie können prüfen, ob Kommentaraktualisierungen erfolgreich angewendet wurden. Prüfen Sie dazu das commentUpdateState Feld im Antworttext der presentations.batchUpdate Methode. 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.