2016-07-25 110 views
0

我使用的是Google Drive Android API。我的应用程序正在同步文件到谷歌驱动器文件夹。这工作正常。
此外,我想与其他用户共享这些文件夹和文件。不幸的是在同一应用程序的另一个设备和账号,我只能访问文件/我已经通过文件/文件夹采摘采摘文件夹(见https://github.com/googledrive/android-demos/tree/master/app/src/main/java/com/google/android/gms/drive/sample/demoAndroid Google Drive Api跨设备和帐户共享文件

我GoogleApiClient越来越范围:Drive.SCOPE_FILE。所以介绍称:

按文件访问由应用程序创建或打开文件

由于我使用的是相同的应用程序在其他设备上使用不同的帐号我不应该能够访问那些文件?顺便说一句,在这个工作的另一台设备上有相同的帐户。

有没有其他解决方案?我已经检查过REST API,但是恐怕这会让整个代码变得更加复杂。

回答

4

大家谁是感兴趣的一个解决方案:

  • 我发现没有办法共享文件同步与谷歌Android原生API。 (除了文件选择器)
  • 如果你想这样做,你必须使用谷歌驱动器rest API。

这个解决方案的一个小优点。我认为java rest API更适合这类工作。代码以这种方式更具可读性。

0

您只需要授权用户。请注意,在您的应用程序发送到Drive API的每个请求中都必须包含授权令牌。令牌还可以识别您的应用程序到Google。您必须通过OAuth 2.0授权请求。没有其他授权协议被支持。

对Drive API的所有请求都必须由经过身份验证的用户授权。

OAuth 2.0的授权过程或“流程”的细节根据您正在编写的应用程序类型而有所不同。以下一般过程适用于所有应用程序类型:

  • 当您创建应用程序时,请使用Google API控制台注册它。 Google随后会提供您稍后需要的信息,例如客户端ID和客户端密码。
  • 在Google API控制台中激活Drive API。 (如果API未在API控制台中列出,则跳过此步骤。)
  • 当您的应用程序需要访问用户数据时,它会要求Google提供特定的访问范围。
  • Google向用户显示同意屏幕,要求他们授权您的应用程序请求其某些数据。
  • 如果用户批准,Google会为您的应用程序提供短期访问令牌。
  • 您的应用程序请求用户数据,将访问令牌附加到请求。
  • 如果Google确定您的请求和令牌有效,它会返回请求的数据。

一些流程包含其他步骤,例如使用刷新令牌获取新的访问令牌。有关各种应用程序流程的详细信息,请参阅Google的OAuth 2.0文档。

范围: https://www.googleapis.com/auth/drive.file - 按文件访问用户的驱动(https://www.googleapis.com/auth/drive)创建或打开由应用

Full access to all files文件可能需要一些应用程序。例如,旨在同步文件的应用程序需要对Drive的访问级别。具有与列出或重组文件相关的特殊需求的应用程序可能需要全部范围。

+0

感谢您的回答。可能你指的是谷歌驱动器休息API。我目前使用android谷歌驱动器本机api。所有请求都可以在一台设备上正常工作。如果我使用具有相同帐户的其他设备,它仍然正常工作。只有当我与另一个帐户共享数据时,它不起作用。 – Thomas

相关问题