共有ドライブ API と My Drive API の違い

共有ドライブは、マイドライブとは異なる組織、共有、所有モデルに従います。そのため、共有ドライブ内のコンテンツに対しては、マイドライブの一部のオペレーションが許可されません。このドキュメントでは、共有ドライブ固有の API の違いについて概説します。

ファイル リソース

File リソースの次のフィールドは、共有ドライブ内のファイルにのみ入力されます。

  • hasAugmentedPermissions: このファイルに対するファイル アクセス権がユーザーに直接付与されているかどうか。
  • capabilities/canAddFolderFromAnotherDrive: 現在のユーザーが別のドライブ(別の共有ドライブまたはマイドライブ)のフォルダをこのフォルダに追加できるかどうか。
  • capabilities/canDeleteChildren: 現在のユーザーがこのフォルダの子フォルダを削除できるかどうか。
  • capabilities/canMoveChildrenOutOfDrive: 現在のユーザーがこのフォルダの子フォルダを共有ドライブの外部に移動できるかどうか。
  • capabilities/canMoveChildrenWithinDrive: 現在のユーザーがこのフォルダの子フォルダを共有ドライブ内で移動できるかどうか。
  • capabilities/canMoveItemWithinDrive: 現在のユーザーがこの共有ドライブ アイテムを共有ドライブ内で移動できるかどうか。
  • capabilities/canReadDrive: 現在のユーザーが、このファイルが属する共有ドライブへの読み取りアクセス権を持っているかどうか。
  • capabilities/canTrashChildren: 現在のユーザーがこのフォルダの子フォルダをゴミ箱に移動できるかどうか。
  • driveId: ファイルが配置されている共有ドライブの ID。
  • trashingUser: ファイルが明示的にゴミ箱に移動された場合は、そのファイルをゴミ箱に移動したユーザー。
  • trashedTime: アイテムがゴミ箱に移動された時刻。古い Drive API v2 を使用している場合、このフィールドは trashedDate と呼ばれます。

共有ドライブ内のファイルには、次のフィールドが入力されません。

  • permissions: 共有ドライブの ACL のサイズが原因で、権限はファイルの一部として返されません。ページネーションをサポートする permissions.list() メソッドを使用して、共有ドライブまたは共有ドライブ フォルダ内のファイルの権限を一覧表示します。
  • ownersownerNamesownedByMe: 共有ドライブ内のファイルは、個々のユーザーではなく共有ドライブによって所有されます。
  • folderColorRgb: フォルダに個別に色を付けることはできません。
  • shared: 共有ドライブ内のすべてのアイテムが共有されます。
  • writersCanShare: 共有ドライブでは、ロールごとに共有を制限することはできません。

次のフィールドは、ユーザーにアイテムに対するファイル アクセス権が付与されている場合にのみ設定されます。

  • sharedWithMeDate
  • sharingUser

共有ドライブで使用する場合は、次のフィールドに特別な注意が必要です。

  • parents.isRoot: このフィールドは、マイドライブのルートフォルダにのみ true です。共有ドライブの最上位フォルダには false です。
  • parents: リクエストしたユーザーが共有ドライブのメンバーではなく、親にアクセス権を持っていない場合、親は親リストに表示されません。また、ファイルが共有ドライブ内にある場合、親リストには最上位フォルダを除き、1 つの項目のみを含める必要があります。

  • capabilities/canRemoveChildren: capabilities/canDeleteChildren または capabilities/canTrashChildren を使用します。

権限リソース

Permission リソースの permissionDetails フィールドには、共有ドライブ内のファイルにのみ値が入力されます。このフィールドには、この共有ドライブ ファイルで有効になっている権限またはこの共有ドライブ ファイルが継承した権限の概要がリストされます。このフィールドは出力専用フィールドで、共有ドライブ アイテムにのみ存在します。加えて次の点にもご注意ください。

  • organizerfileOrganizer の 2 つの新しいロールが定義されました。
  • permissions.list() メソッドはページ分けをサポートしています。

リソースを変更

共有ドライブの Change リソースでは、次の新しいフィールドを使用できます。

  • changeType: 変更タイプ。有効な値は filedrive です。
  • driveId: この変更に関連付けられている共有ドライブの ID。
  • drive: 共有ドライブの更新された状態。changeTypedrive で、ユーザーが共有ドライブのメンバーである場合に表示されます。

共有ドライブとコンテンツを同期したり、アクティビティを追跡したりする必要があるアプリでは、追加の変更が必要になる場合があります。詳しくは、ユーザーと共有ドライブの変更を追跡するをご覧ください。