Googleスプレッドシート、ドキュメント、スライド等に追記されたコメント・返信コメントは、DriveAPIを使うと取得出来ます。
「GASでコメントの取得方法」を検索すると、v2での取得方法が良くヒットしますが、ここではv3の方法になります。
v2とv3でリクエストのパラメータやレスポンス内容に差異がありますが、個人的には最終更新日を指定してリクエストができるv3の方がお勧めです。
準備
Google Apps Scriptで「サービス」を追加します。
「DriveAPI ドキュメント」 > バージョン「v3」を選択
コード
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)' ...