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 | 利用可能な場合、ユーザーのプロフィール写真へのリンク |
おしまい。。