【问题标题】:Android Google Drive Api share files across devices and accountsAndroid Google Drive Api 跨设备和帐户共享文件
【发布时间】:2017-01-11 17:17:15
【问题描述】:

我正在使用 Google Drive Android API。我的应用程序正在将文件同步到谷歌驱动器文件夹。这工作正常。
此外,我想与其他用户共享这些文件夹和文件。不幸的是,从同一应用程序中的另一台设备和帐户,我只能访问通过文件/文件夹选择器选择的文件/文件夹(请参阅https://github.com/googledrive/android-demos/tree/master/app/src/main/java/com/google/android/gms/drive/sample/demo

我的 GoogleApiClient 正在获取范围:Drive.SCOPE_FILE。所以描述说:

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

由于我在另一台设备上使用不同的帐户使用相同的应用程序,我不应该能够访问这些文件吗?顺便说一句,在另一台设备上使用相同的帐户,这是可行的。

还有其他解决办法吗?我已经检查了 REST API,但我担心这会使整个代码变得更加复杂。

【问题讨论】:

    标签: android scope share google-drive-android-api unauthorized


    【解决方案1】:

    对于所有对解决方案感兴趣的人:

    • 我发现无法使用 google android 原生 API 同步共享文件。 (除了文件选择器)
    • 如果您想这样做,您必须使用 google drive rest API。

    这个解决方案有一点优势。我认为 java rest API 无论如何都更适合这种工作。代码以这种方式变得更具可读性。

    【讨论】:

    • 我们可以从appdata文件夹下载文件吗
    【解决方案2】:

    您只需要授权用户。请注意,您的应用程序向 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 - 按文件访问应用程序创建或打开的文件

    用户驱动器中的Full access to all files (https://www.googleapis.com/auth/drive) 对于某些应用程序可能是必需的。例如,设计用于同步文件的应用程序需要此级别的云端硬盘访问权限。具有与列出或重组文件相关的特殊需求的应用程序可能需要完整范围。

    【讨论】:

    • 感谢您的回答。可能您指的是 google drive rest api。我目前正在使用 android google drive native api。所有请求都在一台设备上正常工作。如果我正在使用具有相同帐户的另一台设备,它仍然可以正常工作。只有当我与另一个帐户共享数据时,它才不起作用。
    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多