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