Когда ваше приложение ABC вызывает API Google Drive от имени пользователя, вы будете использовать oAuth для авторизации ABC .Из Drive API v3 docs:
Детали процесса авторизации или flow для OAuth 2.0 несколько различаются в зависимости от того, какое приложение вы пишете.Следующий общий процесс применяется ко всем типам приложений:
- Когда вашему приложению требуется доступ к пользовательским данным, оно запрашивает у Google конкретную область доступа.
- Google отображает для пользователя экран согласия с просьбой разрешить вашему приложению запросить некоторые из его данных.
Авторизация ресурса Google ДискаСхема включает в себя ряд «разрешающих» областей, в которых ваше приложение может (например) запрашивать доступ ко всему диску и «узким» областям пользователя.В последнем случае ваше приложение ограничено определенными файлами и / или папками диска.В конце 2018 года Google анонсировал Project Strobe , который обещал ужесточить ограничения в отношении «разрешающих» областей действия для многих служб Google, включая Drive.В мае 2019 года они выпустили обновленную политику для API-интерфейсов Drive:
С помощью этой обновленной политики мы ограничим типы приложений, имеющих широкий доступ к контенту или данным через API-интерфейсы Drive.Приложения должны перейти к модели согласия пользователя для каждого файла, что позволит пользователям более точно определять, к каким файлам приложению разрешен доступ.Это означает, что только определенные типы приложений могут запрашивать ограниченные области из пользовательских учетных записей Google.Как всегда, администраторы G Suite контролируют приложения своих пользователей.
Более удобные для пользователя, более узкие области помечены и обозначены как Рекомендуемые в документах Google API.Для накопителя у вас есть 3 рекомендуемые области действия:
https://www.googleapis.com/auth/drive.appfolder
Позволяет получить доступ к папке Application Data https://www.googleapis.com/auth/drive.file
Доступ к файлам, созданным или открытым с помощью файла.приложение.Авторизация файла предоставляется для каждого пользователя и отменяется, когда пользователь деавторизует приложение. https://www.googleapis.com/auth/drive.install
Специальная область, используемая для того, чтобы пользователи могли одобрить установку приложения, и необходимо запросить область действия
Ваш сценарий использования может быть либо drive.appfolder
, либоdrive.file
сфера.drive.appfolder
хорошо работает, если вы хотите хранить данные приложения , которые пользователь не должен и не должен касаться:
* * Данные приложения Папка 1057 * - это специальная скрытая папка, которую ваше приложение может использовать для хранения данных приложения, таких как файлы конфигурации.Папка данных приложения создается автоматически при попытке создать в ней файл.Используйте эту папку для хранения любых файлов, с которыми пользователь не должен напрямую взаимодействовать.Эта папка доступна только вашему приложению, а ее содержимое скрыто от пользователя и других приложений Drive.
Папка данных приложения удаляется, когда пользователь удаляет ваше приложение из MyDrive.Пользователи также могут удалить папку данных вашего приложения вручную.
drive.file
применимо, если ваш сценарий использования связан с некоторыми данными, создаваемыми вашим приложением от имени пользователя и пользователь или другие пользователи должны иметь возможность просматривать / редактировать / делиться этими документами.Проблема с drive.file
заключается в том, что он применяется только к «объектам», создаваемым вашим приложением.Если ваше приложение ABC создает папку Foo , а затем создает некоторые файлы в этой папке, ваше приложение сможет получить доступ к папке и этим, и только этим файлам.
С drive.file
не существует семантики владения родителем / потомком и не распространяются разрешения от родителя к потомку.Пользователь (в своем браузере без вашего приложения) может создать больше файлов в папке Foo , но ваше приложение не сможет их прочитать.
Стоит отметить, что drive.file
не предоставляет доступ к определенной папке ... но это как эквивалент эквивалентного конечного результата для папки, которая будет создана (вашим приложением), илипапки.
Если вы ищете способ получить доступ к существующей папке , вам может потребоваться заглянуть в одну из Sensitive или Ограничено Области применения .Для использования одной из этих областей необходимо, чтобы ваше приложение прошло проверку безопасности .