Используйте Google Диск из приложения с ограничением папки (например, Dropbox) - PullRequest
1 голос
/ 21 сентября 2019

Когда я вхожу в приложение через Dropbox, он говорит:

ABC хотел бы получить доступ к своей собственной папке, Приложения ›ABC (выделено мной)

Этоозначает, что приложение ABC может получить доступ только к своей папке.

Однако эта папка обычно отображается в каталоге Dropbox и синхронизируется.

Есть ли способ добиться этого с помощьюГугл драйв?Похоже, что использование функции данных приложения не позволяет пользователям использовать каталог каким-либо образом, кроме приложения.Предоставление разрешения на использование всего Google Диска дает приложению слишком много разрешений.Dropbox сделал эту функцию хорошо.Есть ли способ выполнить процесс подписки таким образом с Google Drive?

1 Ответ

0 голосов
/ 25 сентября 2019

Когда ваше приложение 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 или Ограничено Области применения .Для использования одной из этих областей необходимо, чтобы ваше приложение прошло проверку безопасности .

...