LoginSignup
1
1

[Google Drive API v3] Javaで共有ドライブを作成・更新・削除する

Posted at

Google Drive API v3(Java)を使用して、
共有ドライブを作成・更新・削除する方法
についてご紹介します。

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

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

1.2. 実行

共有ドライブ作成時に設定したい内容を
com.google.api.services.drive.model.Drive
に設定します。

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

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Drives drives = drive.drives();
    
    String uuid = UUID.randomUUID().toString();
    //設定したい内容をcontentに設定します
    com.google.api.services.drive.model.Drive content = new com.google.api.services.drive.model.Drive();
    
    Drive.Drives.Create create = drives.create(uuid, content);
    
    com.google.api.services.drive.model.Drive res = create.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

POST: https://www.googleapis.com/drive/v3/drives
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

Driveのsetメソッドにより、リクエストボディを設定できます。
(「com.google.api.services.drive.model.Drive」のDriveです)

メソッド 引数 説明
setName String 共有ドライブの名前
setColorRgb String 共有ドライブの色
setThemeId String 背景画像と色が設定されるテーマのID
setBackgroundImageFile BackgroundImageFile 共有ドライブの背景画像を設定するための画像ファイルとトリミング パラメータ
setHidden Boolean 共有ドライブをデフォルトのビューで非表示にするか
setRestrictions Restrictions 共有ドライブまたは共有ドライブ内のアイテムに適用される一連の制限

BackgroundImageFile(set)

メソッド 引数 説明
steId String 背景画像として使用するGoogleドライブ内の画像ファイルID
setXCoordinate Float 背景画像のトリミング領域の左上隅のX座標(0〜1)
setYCoordinate Float 背景画像のトリミング領域の左上隅のY座標(0〜1)
setWidth Float トリミングされたイメージの幅(0〜1)

Restrictions(set)

メソッド 引数 説明
setCopyRequiresWriterPermission Boolean 共有ドライブ内のファイルをコピー、印刷、またはダウンロードするオプションを、読者とコメント投稿者に対して無効にするか
setDomainUsersOnly Boolean 共有ドライブおよび共有ドライブ内のアイテムへのアクセスを、共有ドライブが属するドメインのユーザーに制限するか
setDriveMembersOnly Boolean 共有ドライブ内のアイテムへのアクセスをそのメンバーに制限するか
setAdminManagedRestrictions Boolean 制限を変更するには、共有ドライブに対する管理者権限が必要か
setSharingFoldersRequiresOrganizerPermission Boolean オーガナイザーの役割を持つユーザーのみがフォルダーを共有するか

1.3. レスポンスの内容

Drive

(「com.google.api.services.drive.model.Drive」のDriveです)

フィールド メソッド 戻り値 説明
id getId String 共有ドライブID
name getName String 共有ドライブの名前
colorRgb getColorRgb String 共有ドライブの色
kind getKind String リソースの種類
固定文字列:"drive#drive"
backgroundImageLink getBackgroundImageLink String 共有ドライブの背景イメージへの短期間のリンク
capabilities getCapabilities Capabilities 現在のユーザーが共有ドライブ上で持つ機能
themeId getThemeId String 背景画像と色が設定されるテーマのID
backgroundImageFile getBackgroundImageFile BackgroundImageFile 共有ドライブの背景画像を設定するための画像ファイルとトリミング パラメータ
createdTime getCreatedTime String 共有ドライブが作成された時刻 (RFC 3339 日付/時刻)。
hidden getHidden Boolean 共有ドライブをデフォルトのビューで非表示にするか
restrictions getRestrictions Restrictions 共有ドライブまたは共有ドライブ内のアイテムに適用される一連の制限
orgUnitId getOrgUnitId String 共有ドライブの組織単位

Capabilities

メソッド 戻り値 説明
getCanAddChildren Boolean 現在のユーザーが共有ドライブ内のフォルダーに子を追加できるか
getCanComment Boolean 現在のユーザーが共有ドライブ内のファイルにコメントできるか
getCanCopy Boolean 現在のユーザーが共有ドライブ内のファイルをコピーできるか
getCanDeleteDrive Boolean 現在のユーザーが共有ドライブを削除できるか
getCanDownload Boolean 現在のユーザーが共有ドライブにファイルをダウンロードできるか
getCanEdit Boolean 現在のユーザーが共有ドライブ内のファイルを編集できるか
getCanListChildren Boolean 現在のユーザーが共有ドライブ内のフォルダーの子の一覧を表示できるか
getCanManageMembers Boolean 現在のユーザーが共有ドライブにメンバーを追加、削除、または役割を変更できるか
getCanReadRevisions Boolean 現在のユーザーが共有ドライブ内のファイルのリビジョン リソースを読み取ることができるか
getCanRename Boolean 現在のユーザーが共有ドライブ内のファイルまたはフォルダーの名前を変更できるか
getCanRenameDrive Boolean 現在のユーザーが共有ドライブの名前を変更できるか
getCanChangeDriveBackground Boolean 現在のユーザーが共有ドライブの背景を変更できるか
getCanShare Boolean 現在のユーザーが共有ドライブ内のファイルまたはフォルダーを共有できるか
getCanChangeCopyRequiresWriterPermissionRestriction Boolean 現在のユーザーがcopyRequiresWriterPermission共有ドライブの制限を変更できるか
getCanChangeDomainUsersOnlyRestriction Boolean 現在のユーザーがdomainUsersOnly共有ドライブの制限を変更できるか
getCanChangeDriveMembersOnlyRestriction Boolean 現在のユーザーがdriveMembersOnly共有ドライブの制限を変更できるか
getCanChangeSharingFoldersRequiresOrganizerPermissionRestriction Boolean 現在のユーザーがsharingFoldersRequiresOrganizerPermission共有ドライブの制限を変更できる
getCanResetDriveRestrictions Boolean 現在のユーザーが共有ドライブの制限をデフォルトにリセットできるか
getCanDeleteChildren Boolean 現在のユーザーが共有ドライブ内のフォルダーから子を削除できるか
getCanTrashChildren Boolean 現在のユーザーが共有ドライブ内のフォルダーから子をゴミ箱に入れることができるか

BackgroundImageFile

メソッド 戻り値 説明
gteId String 背景画像として使用するGoogleドライブ内の画像ファイルID
getXCoordinate Float 背景画像のトリミング領域の左上隅のX座標(0〜1)
getYCoordinate Float 背景画像のトリミング領域の左上隅のY座標(0〜1)
getWidth Float トリミングされたイメージの幅(0〜1)

Restrictions

メソッド 戻り値 説明
getCopyRequiresWriterPermission Boolean 共有ドライブ内のファイルをコピー、印刷、またはダウンロードするオプションを、読者とコメント投稿者に対して無効にするか
getDomainUsersOnly Boolean 共有ドライブおよび共有ドライブ内のアイテムへのアクセスを、共有ドライブが属するドメインのユーザーに制限するか
getDriveMembersOnly Boolean 共有ドライブ内のアイテムへのアクセスをそのメンバーに制限するか
getAdminManagedRestrictions Boolean 制限を変更するには、共有ドライブに対する管理者権限が必要か
getSharingFoldersRequiresOrganizerPermission Boolean オーガナイザーの役割を持つユーザーのみがフォルダーを共有するか

2. 共有ドライブの情報を更新

共有ドライブのメタデータを更新します。

2.1. スコープ

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

DriveScopes.DRIVE

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

2.2. 実行

共有ドライブの更新したい情報を
com.google.api.services.drive.model.Drive
に設定します。

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

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Drives drives = drive.drives();
    
    com.google.api.services.drive.model.Drive content = new com.google.api.services.drive.model.Drive();
    Drive.Drives.Update update = drives.update("共有ドライブID", content);
    update.setFields("*");
    
    com.google.api.services.drive.model.Drive res = update.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

PATCH: https://www.googleapis.com/drive/v3/drives/{共有ドライブID}
が実行されます。

2.2.2. クエリパラメータ

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

メソッド 引数 説明
setUseDomainAdminAccess Boolean ドメイン管理者としてリクエストを発行するか

2.2.3. リクエストボディ

Driveのsetメソッドにより、リクエストボディを設定できます。
(「com.google.api.services.drive.model.Drive」のDriveです)

1.2.3. リクエストボディと同じです。

2.3. レスポンスの内容

Drive

1.3. レスポンスの内容と同じです。

3. 共有ドライブを削除

共有ドライブを削除します。

3.1. スコープ

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

DriveScopes.DRIVE

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

3.2. 実行

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Drives drives = drive.drives();
    
    Drive.Drives.Delete delete = drives.delete("共有ドライブID");
    
    delete.execute();
}

3.2.1. HTTPリクエスト

DELETE: https://www.googleapis.com/drive/v3/drives/{ドライブID}
が実行されます。

3.2.2. クエリパラメータ

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

メソッド 引数 説明
setUseDomainAdminAccess Boolean ドメイン管理者としてリクエストを発行するか
setAllowItemDeletion Boolean 共有ドライブ内のアイテムも削除するか

3.2.3. リクエストボディ

リクエストボディはありません。

3.3. レスポンスの内容

成功した場合は何も返しません。
失敗した場合は例外を出力します。



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