Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのコメントを追加・変更・削除する方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Drive API v3] JavaでDrive APIを使う
を参照ください。
No | 目次 | |
---|---|---|
1 | コメントを追加 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
2 | コメントを変更 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
3 | コメントを削除 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. コメントを追加
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
DriveScopes.DRIVE
DriveScopes.DRIVE_FILE
⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。
1.2. 実行
コメントを追加したいファイルIDとコメントの内容を指定します。
setFieldsでレンスポンスで取得したいフィールド(Comment)を指定します。
指定しないとエラーになります。
ここでは「*」(全て取得)を指定しています。
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Comments comments = drive.comments();
Comment comment = new Comment();
comment.setContent("コメント内容");
Drive.Comments.Create create = comments.create("ファイルID", comment);
create.setFields("*");
Comment res = create.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://www.googleapis.com/drive/v3/files/{ファイルID}/comments
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
Commentのsetメソッドにより、リクエストボディを設定できます。
フィールド | メソッド | 引数 | 説明 |
---|---|---|---|
anchor | setAnchor | String | JSON文字列として表されるドキュメントの領域 |
content | setContent | String | コメントのプレーンテキストの内容 |
quotedFileContent | setQuotedFileContent | QuotedFileContent | コメントが参照するファイルのコンテンツ |
QuotedFileContent
メソッド | 引数 | 説明 |
---|---|---|
setMimeType | String | 引用されたコンテンツのMIMEタイプ |
setValue | String | 引用した内容 |
1.3. レスポンスの内容
Comment
フィールド | メソッド | 戻り値 | 説明 |
---|---|---|---|
id | getId | String | コメントID |
kind | getKind | String | リソースの種類 固定文字列:"drive#comment" |
createdTime | getCreatedTime | String | コメントが作成された時刻 |
modifiedTime | getModifiedTime | String | コメントまたはその返信が最後に変更された時刻 |
resolved | getResolved | Boolean | コメントがいずれかの返信によって解決されたか |
anchor | getAnchor | String | JSON文字列として表されるドキュメントの領域 |
replies | getReplies | List<Reply> | コメントに対する返信の完全なリスト |
author | getAuthor | User | コメントの作成者 |
deleted | getDeleted | Boolean | コメントが削除されているか |
htmlContent | getHtmlContent | String | HTML形式のコメントの内容 |
content | getContent | String | コメントのプレーンテキストの内容 |
quotedFileContent | getQuotedFileContent | Comment.QuotedFileContent | コメントが参照するファイルのコンテンツ |
Reply
メソッド | 戻り値 | 説明 |
---|---|---|
getId | String | 返信ID |
getKind | String | リソースの種類 固定文字列:"drive#reply" |
getCreatedTime | String | 応答が作成された時刻 |
getModifiedTime | String | 応答が最後に変更された時刻 |
getAction | String | 返信が親コメントに対して実行したアクション resolve、reopen |
getAuthor | User | 返信の作成者 |
getDeleted | Boolean | 返信が削除されたか |
getHtmlContent | String | HTML形式での返信の内容 |
getContent | String | 返信のプレーンテキストの内容 |
User
メソッド | 戻り値 | 説明 |
---|---|---|
getDisplayName | String | 表示名 |
getEmailAddress | String | ユーザーの電子メールアドレス |
getKind | String | リソースの種類 固定文字列:"drive#user" |
getMe | Boolean | このユーザーが要求ユーザーであるか |
getPermissionId | String | 権限リソースに表示されるユーザーID |
getPhotoLink | String | 利用可能な場合、ユーザーのプロフィール写真へのリンク |
Comment.QuotedFileContent
メソッド | 戻り値 | 説明 |
---|---|---|
getMimeType | String | 引用されたコンテンツのMIMEタイプ |
getValue | String | 引用した内容 |
2. コメントを変更
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
DriveScopes.DRIVE
DriveScopes.DRIVE_FILE
⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。
2.2. 実行
変更したいコメントがあるファイルのIDとコメントID、コメントの内容を指定します。
コメントIDが自身のコメントではない場合は更新されません。
(例外、エラーも表示されません)
setFieldsで取得したいフィールド(Comment)を指定します。
指定しないとエラーになります。
ここでは「*」(全て取得)を指定しています。
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Comments comments = drive.comments();
Comment comment = new Comment();
comment.setContent("コメント内容");
Drive.Comments.Update update = comments.update("ファイルID", "コメントID",comment);
update.setFields("*");
Comment res = update.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
PATCH: https://www.googleapis.com/drive/v3/files/{ファイルID}/comments/{コメントID}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.2.3. リクエストボディ
Commentのsetメソッドにより、リクエストボディを設定できます。
1.2.3. リクエストボディと同じです。
2.3. レスポンスの内容
Comment
1.3. レスポンスの内容と同じです。
3. コメントを削除
3.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
DriveScopes.DRIVE
DriveScopes.DRIVE_FILE
⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。
3.2. 実行
削除したいコメントがあるファイルのIDとコメントIDを指定します。
コメントIDが自身のコメントではない場合は削除されません。
削除に失敗した場合のみ例外を出力します。
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Comments comments = drive.comments();
Drive.Comments.Delete delete = comments.delete("ファイルID", "コメントID");
delete.execute();
}
3.2.1. HTTPリクエスト
DELETE: https://www.googleapis.com/drive/v3/files/{ファイルID}/comments/{コメントID}
が実行されます。
3.2.2. クエリパラメータ
クエリパラメータはありません。
3.2.3. リクエストボディ
リクエストボディはありません。
3.3. レスポンスの内容
成功した場合は何も返しません。
失敗した場合は例外を出力します。
おしまい。。