0

Я пользуюсь Google Android API для Android. Мое приложение синхронизирует файлы с папкой диска google. Это работает правильно.
Кроме того, я хочу поделиться этими папками и файлами с другими пользователями. К сожалению, с другого устройства и учетной записи в одном приложении я могу получить доступ только к файлам/папкам, которые я выбрал в сборщиках файлов/папок (см. https://github.com/googledrive/android-demos/tree/master/app/src/main/java/com/google/android/gms/drive/sample/demo)Android Google Drive Api делится файлами между устройствами и учетными записями

Мой GoogleApiClient получает область действия: Drive.SCOPE_FILE. Так описание говорит:

Per-файл доступ к файлам, созданным или открытых приложениями

Поскольку я использую то же приложение на другое устройство с другой учетной записью я не должен быть в состоянии получить доступ эти файлы? Btw с той же учетной записью на другом устройстве работает.

Есть ли другое решение? Я уже проверил REST API, но, боюсь, это сделает весь код более сложным.

ответ

4

Для всех, кто заинтересован в решении:

  • Я не нашел способ синхронизировать общие файлы с Google Android Native API. (кроме сборщика файлов)
  • В случае, если вы хотите это сделать, вам необходимо использовать API-интерфейс для защиты Google.

Небольшое преимущество для этого решения. Я думаю, что API java rest в любом случае намного больше подходит для такого рода работ. Код становится таким более читаемым.

0

Вам просто нужно авторизоваться у пользователя. Обратите внимание, что в каждом запросе, которое ваше приложение отправляет в API накопителя, должен быть включен токен авторизации. Токен также идентифицирует ваше приложение в Google. Чтобы разрешить запросы, вам необходимо ввести OAuth 2.0. Никаких других протоколов авторизации не поддерживается.

Все запросы API Drive должны быть авторизованы аутентифицированным пользователем.

Детали процесса авторизации или «поток» для OAuth 2.0 несколько различаются в зависимости от того, какое приложение вы пишете. Следующий общий процесс применяется ко всем типам приложений:

  • При создании приложения вы регистрируете его с помощью консоли Google API. Затем Google предоставляет информацию, которая вам понадобится позже, например, идентификатор клиента и секрет клиента.
  • Активируйте API-интерфейс Drive в консоли API Google. (Если API не указан в консоли API, пропустите этот шаг.)
  • Когда вашему приложению требуется доступ к пользовательским данным, он запрашивает у Google определенную область доступа.
  • Google показывает пользователю экран согласия, предлагая им разрешить ваше приложение запрашивать некоторые из их данных.
  • Если пользователь одобряет, то Google предоставляет вашему приложению кратковременный токен доступа.
  • Приложение запрашивает данные пользователя, прикрепляя токен доступа к запросу.
  • Если Google определяет, что ваш запрос и токен действительны, он возвращает запрошенные данные.

Некоторые потоки включают в себя дополнительные этапы, такие как использование токенов обновления для получения новых токенов доступа. Подробную информацию о потоках для различных типов приложений см. В документации Google OAuth 2.0.

Область применения: https://www.googleapis.com/auth/drive.file - Per-файла доступ к файлам, созданным или открытые приложения

Full access to all files в пользователя Drive (https://www.googleapis.com/auth/drive) может потребоваться для некоторых приложений. Например, приложение, предназначенное для синхронизации файлов, нуждается в таком уровне доступа к Диску. Приложения с особыми потребностями, связанные с листингом или реорганизацией файлов, могут нуждаться в полной мере.

+0

Спасибо за ответ. Вероятно, вы имеете в виду google drive rest api. В настоящее время я использую родной api-файл google для Android. Все запросы работают на одном устройстве. Если я использую другое устройство с той же учетной записью, оно все еще работает правильно. Только когда я использую данные с другим аккаунтом, он не работает. – Thomas

Смежные вопросы