Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのリビジョンを更新・削除する方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Drive API v3] JavaでDrive APIを使う
を参照ください。
| No | 目次 | |
|---|---|---|
| 1 | リビジョンを更新 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 | |
| 2 | リビジョンを削除 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 |
1. リビジョンを更新
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
DriveScopes.DRIVE
DriveScopes.DRIVE_APPDATA
DriveScopes.DRIVE_FILE
⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
1.2. 実行
リビジョンを更新したいファイルIDとリビジョンID、リビジョンの内容を指定します。
setFieldsでレンスポンスで取得したいフィールド(Reply)を指定できます。
指定しない場合は、必要最小限のレスポンスしか返ってきません。
ここでは「*」(全て取得)を指定しています。
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Revisions revisions = drive.revisions();
Revision revision = new Revision();
revision.setPublished(false);
Drive.Revisions.Update update = revisions.update("ファイルID", "リビジョンID", revision);
update.setFields("*");
Revision res = update.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
PATCH:https://www.googleapis.com/drive/v3/files/{ファイルID}/revisions/{リビジョンID}
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
Revisionのsetメソッドにより、リクエストボディを設定できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setPublished | Boolean | このリビジョンが公開されるか ドキュメントファイルのみ |
| setKeepForever | Boolean | このリビジョンを永久に保持するか バイナリファイルのみ |
| setPublishAuto | Boolean | 以降のリビジョンが自動的に再公開されるか ドキュメントファイルのみ |
| setPublishedOutsideDomain | Boolean | このリビジョンがドメイン外で公開されるか ドキュメントファイルのみ |
1.3. レスポンスの内容
Reply
| フィールド | メソッド | 戻り値 | 説明 |
|---|---|---|---|
| id | getId | String | リプライID |
| kind | getKind | String | リソースの種類 固定文字列:"drive#reply" |
| createdTime | getCreatedTime | String | 応答が作成された時刻 |
| modifiedTime | getModifiedTime | String | 応答が最後に変更された時刻 |
| action | getAction | String | 返信が親コメントに対して実行したアクション resolve、reopen |
| author | getAuthor | User | 返信の作成者 |
| deleted | getDeleted | Boolean | 返信が削除されたか |
| htmlContent | getHtmlContent | String | HTML形式での返信の内容 |
| content | getContent | String | 返信のプレーンテキストの内容 |
User
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getDisplayName | String | 表示名 |
| getEmailAddress | String | ユーザーの電子メールアドレス |
| getKind | String | リソースの種類 固定文字列:"drive#user" |
| getMe | Boolean | このユーザーが要求ユーザーであるか |
| getPermissionId | String | 権限リソースに表示されるユーザーID |
| getPhotoLink | String | 利用可能な場合、ユーザーのプロフィール写真へのリンク |
2. リビジョンを削除
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
DriveScopes.DRIVE
DriveScopes.DRIVE_APPDATA
DriveScopes.DRIVE_FILE
⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
2.2. 実行
削除したいリビジョンがあるファイルのIDとリビジョンIDを指定します。
画像や動画などのバイナリコンテンツのみ削除できます。
リビジョンが複数ある場合のみ削除できます。(1つのみの場合は例外)
public static void main(String[] args) throws Exception{
Drive drive = getDrive();
Drive.Revisions revisions = drive.revisions();
Drive.Revisions.Delete delete = revisions.delete("ファイルID", "リビジョンID");
delete.execute();
}
2.2.1. HTTPリクエスト
DELETE: https://www.googleapis.com/drive/v3/files/{ファイルID}/revisions/{リビジョンID}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.2.3. リクエストボディ
リクエストボディはありません。
2.3. レスポンスの内容
成功した場合は何も返しません。
失敗した場合は例外を出力します。
おしまい。。