コメントを管理する

Google スライドでは、スライドやページ要素にコメントを追加して共同作業を行うことができます。

このドキュメントでは、Google スライド API を使用して、コメントの読み取り、作成、返信、更新、削除をプログラムで行う方法について説明します。

コメントの閲覧

` presentations ` リソースで ` get` メソッドを使用してプレゼンテーションを取得する場合、コメント スレッドとアンカーは ` ` デフォルトで省略されます。

レスポンスにコメントを含めるには、 commentsViewMode クエリ パラメータを COMMENTS_VIEW_MODE_INCLUDEDに設定します。 また、呼び出し元のユーザーがファイルに対するコメント アクセス権を持っている場合は、クエリ パラメータを COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS に設定すると、コメントも返されます。

レスポンスには、 comments フィールドと commentAnchors フィールドの両方が返されます。

次のコードサンプルは、プレゼンテーションからコメント スレッドとそのアンカーを取得する get リクエストの使用方法を示しています。

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

レスポンスでは、コメントは次の 2 つの場所に返されます。

  • オブジェクトを含むグローバル comments 配列。 CommentThread
  • commentAnchors 配列。コメント アンカー ID をページまたはページ要素の場所 (オブジェクト アンカー)にマッピングする CommentAnchor オブジェクトが含まれています。

特定のページのコメントを読み取る

` presentations.pages` リソースの ` pages.get` メソッドを使用して、特定のページのコメントとアンカーを取得することもできます。 commentsViewMode クエリ パラメータを設定して、特定のページ ターゲットのコメントを含めます。

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

レスポンスの例

次の JSON レスポンスのサンプルは、スライドページの図形内のテキスト範囲に固定されたコメント スレッドを示しています。

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

コメントの作成と管理

presentations リソースの batchUpdate メソッドを使用して、コメントや返信の追加、編集、削除をプログラムで行うことができます。

コメントを含むバッチ更新を行う場合は、部分的な失敗の可能性をモニタリングする必要があります。詳細については、コメントの更新 ステータスをご覧ください。

コメントを挿入する

プレゼンテーションにコメント スレッドを挿入するには、 InsertCommentRequest オブジェクトを使用します。コメントのテキスト コンテンツとアンカーの位置を指定する必要があります。アンカーの位置には、次のいずれかを指定する必要があります。

  • objectId: コメントを固定するスライドページまたはページ要素(図形や表など)のオブジェクト ID。
  • shapeTextAnchor: 図形のテキスト範囲にコメントを固定します。
  • tableCellTextAnchor: 表のセルのテキスト範囲にコメントを固定します。
  • tableAnchor: 表のセル範囲にコメントを固定します。

次の JSON サンプルは、スライドページに固定されたコメント スレッドを追加する方法を示しています。

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

assigneeEmailAddress フィールドにメールアドレスを指定することで、特定のユーザーにコメントを割り当てることができます。

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

返信を追加する、アクションを実行する

コメント スレッドに返信したり、スレッドを解決したり、スレッドを再度開いたりするには、 AddCommentReplyRequest オブジェクトを使用します。

commentIdpost を指定する必要があります。返信は Post オブジェクトで表されます。

Post オブジェクトには返信の content が含まれており、必要に応じて commentAction (コメント スレッドを RESOLVE または REOPEN するアクションを含む)を指定できます。 CommentActionTypeオブジェクトで表されます。

Post オブジェクトに新しい assigneeEmail を指定して、コメント スレッドを再割り当てすることもできます。

次の JSON サンプルは、既存のコメント スレッドに返信する方法を示しています。

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

次の JSON サンプルは、コメント スレッドを解決する方法を示しています。

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

投稿を編集する

作成した投稿のテキスト コンテンツを編集するには、 UpdateCommentPostRequest オブジェクトを使用します。スレッドの commentId、編集する投稿の postId、新しいプレーン テキスト contentを指定する必要があります。

次の JSON サンプルは、投稿を編集する方法を示しています。

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

コメントと返信を削除する

コメントと返信を削除するには、次の 2 つの方法があります。

  • コメント スレッドを削除する: CommentThread 全体を削除するには、 DeleteCommentRequest オブジェクトを使用します。コメント スレッドを削除できるのは、 スレッドの headPost の作成者のみです。CommentThread

  • 返信を削除する: 特定の返信 PostCommentThreadから削除するには、 DeleteCommentReplyRequest オブジェクトを使用します。削除できるのは、自分が作成した返信のみです。commentAction または assigneeEmail を含む返信投稿は削除できません。

次の JSON サンプルは、コメント スレッドを削除する方法を示しています。

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

コメントの更新ステータス

コメント スレッドの保存が必要なリクエスト(コメントの挿入や返信の追加など)では、部分的な失敗が発生する可能性があります。このような場合、プレゼンテーション モデルの変更(スライド コンテンツや背景の更新など)は正常にコミットされる可能性がありますが、関連するコメントは保存されない可能性があります。

コメントの更新が正常に適用されたかどうかを確認するには、 commentUpdateState メソッドのレスポンス本文の presentations.batchUpdate フィールドを確認します。このフィールド は CommentUpdateState オブジェクトで表されます。

CommentUpdateState では次の状態が返されます。

  • NO_UPDATES_REQUESTED: バッチ オペレーションでコメントの更新がリクエストされませんでした。
  • ALL_SAVED: リクエストされたコメントの更新がすべて正常に適用されました。
  • ALL_FAILED_UNKNOWN_REASON: 他のプレゼンテーションの変更がコミットされた場合でも、リクエストされたコメントの更新を保存できませんでした。