1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Googleスプレッドシート、ドキュメント、スライド等に追記されたコメント・返信コメントは、DriveAPIを使うと取得出来ます。
「GASでコメントの取得方法」を検索すると、v2での取得方法が良くヒットしますが、ここではv3の方法になります。

v2とv3でリクエストのパラメータやレスポンス内容に差異がありますが、個人的には最終更新日を指定してリクエストができるv3の方がお勧めです。

準備

Google Apps Scriptで「サービス」を追加します。
「DriveAPI ドキュメント」 > バージョン「v3」を選択

スクリーンショット1.png

コード

fileIdは、取得したいファイルIDに書き換えてください。
n_dayは、n日前までのコメントを取得します。

コード.gs
function myFunction() {
  // ファイルID
  const fileId = '************************';
  // コメントの最終更新日を指定(7日前)
  const n_day = 7;
  // RFC3339形式
  const dt = Utilities.formatDate(new Date(Date.now() - (n_day * 24 * 60 * 60 * 1000)), 'JST', "yyyy-MM-dd'T'00:00:00XXX");

  let pageToken = '';

  do {
    let result = Drive.Comments.list(fileId, {'fields':'*', 'pageToken':pageToken, 'pageSize':10, 'startModifiedTime':dt});

    for (i = 0; i < result['comments'].length; i++){
      // コメント
      let comment = result['comments'][i];
      console.log(comment);

      // 返信コメント
      for (j = 0; j < comment['replies'].length; j++){
        console.warn(comment['replies'][j]);
      }
    }

    pageToken = result.nextPageToken;
  } while (pageToken); 
}

ポイント

リクエストする際のパラメータにfieldsを追加する必要があります。
「*」とすると全ての項目を取得出来るので、通常はこれで十分です。

Drive.Comments.list(fileId, {'fields':'*' ...

指定した項目だけに制限したい場合は以下の様に項目名を指定します。
例)ページトークン、コメントID、コメント本文

Drive.Comments.list(fileId, {'fields':'nextPageToken,comments(id,content)' ...
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?