LoginSignup
1
0

[Google Drive API v3] Javaでファイルのリビジョンを取得する

Posted at

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
DriveScopes.DRIVE_METADATA
DriveScopes.DRIVE_METADATA_READONLY
DriveScopes.DRIVE_PHOTOS_READONLY
DriveScopes.DRIVE_READONLY

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

1.2. 実行

リビジョンを取得したいファイルのファイルIDを指定します。

setFieldsで取得したいフィールド(RevisionList)を指定できます。
指定しない場合は、必要最小限のレスポンスしか返ってきません。
ここでは「*」(全て取得)を指定しています。

レスポンスのgetNextPageTokenがNULLではない場合、
全てのリストが取得できていません。
クエリパラメータのsetPageTokenに取得できた値を設定し、
再度APIを実行します。

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
	Drive.Revisions revisions = drive.revisions();
 
    Drive.Revisions.List list = revisions.list("ファイルID");
    list.setFields("*");

//レスポンスのgetNextPageTokenがNULLではない場合
//list.setPageToken("レスポンスのgetNextPageToken");

    RevisionList res = list.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://www.googleapis.com/drive/v3/files/{fileId}/revisions
が実行されます。

1.2.2. クエリパラメータ

Drive.Revisions.Listのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setPageSize Integer ページごとに返されるコメントの最大数
setPageToken String 次のページで前のリスト要求を継続するためのトークン
レスポンスのgetNextPageTokenで取得が可能

1.3. レスポンスの内容

RevisionList

フィールド メソッド 戻り値 説明
kind getKind String リソースの種類
固定文字列:"drive#revisionList"
nextPageToken getNextPageToken String 次のページのページトークン
リストの最後の場合はNULL
revisions getRevisions List<Revision> リビジョンのリスト

2. リビジョンを取得

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

DriveScopes.DRIVE
DriveScopes.DRIVE_APPDATA
DriveScopes.DRIVE_FILE
DriveScopes.DRIVE_METADATA
DriveScopes.DRIVE_METADATA_READONLY
DriveScopes.DRIVE_PHOTOS_READONLY
DriveScopes.DRIVE_READONLY

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

2.2. 実行

取得したいリビジョンのファイルIDとリビジョンIDを指定します。

setFieldsで取得したいフィールド(Revision)を指定できます。
指定しない場合は、必要最小限のレスポンスしか返ってきません。
ここでは「*」(全て取得)を指定しています。

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Comments comments = drive.comments();
    
    Drive.Revisions revisions = drive.revisions();
    Drive.Revisions.Get get = revisions.get("ファイルID","リビジョンID");
    get.setFields("*");
    
    Revision res = get.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

GET: https://www.googleapis.com/drive/v3/files/{ファイルID}/revisions/{リビジョンID}
が実行されます。

2.2.2. クエリパラメータ

Drive.Revisions.Getのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setAcknowledgeAbuse Boolean ユーザーが既知のマルウェアまたはその他の不正なファイルをダウンロードするリスクを認識しているか

2.3. レスポンスの内容

Revision

フィールド メソッド 戻り値 説明
id getId String リビジョンID
mimeType getMimeType String リビジョンのMIMEタイプ
kind getKind String リソースの種類
固定文字列:"drive#revision"
published getPublished Boolean このリビジョンが公開されるか
exportLinks getExportLinks Map ファイルを特定の形式にエクスポートするためのリンク
keepForever getKeepForever Boolean このリビジョンを永久に保持するか
バイナリコンテンツのみ
md5Checksum getMd5Checksum String リビジョンのコンテンツのMD5チェックサム
バイナリコンテンツのみ
modifiedTime getModifiedTime String リビジョンが最後に変更された時刻
publishAuto getPublishAuto Boolean 以降のリビジョンが自動的に再公開されるか
ドキュメントファイルのみ
publishedOutsideDomain getPublishedOutsideDomain Boolean このリビジョンがドメイン外で公開されるか
ドキュメントファイルのみ
publishedLink getPublishedLink String 公開されたリビジョンへのリンク
Googleサイトのファイルのみ
size getSize String リビジョンのコンテンツのサイズ (バイト単位)
バイナリコンテンツのみ
originalFilename getOriginalFilename String このリビジョンの作成に使用された元のファイル名
バイナリコンテンツのみ
lastModifyingUser getLastModifyingUser User このリビジョンを最後に変更したユーザー

User

メソッド 戻り値 説明
getDisplayName String 表示名
getEmailAddress String ユーザーの電子メールアドレス
getKind String リソースの種類
固定文字列:"drive#user"
getMe Boolean このユーザーが要求ユーザーであるか
getPermissionId String 権限リソースに表示されるユーザーID
getPhotoLink String 利用可能な場合、ユーザーのプロフィール写真へのリンク


おしまい。。
1
0
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
0