【问题标题】:Google Drive SDK: Modify application-owned file as userGoogle Drive SDK:以用户身份修改应用程序拥有的文件
【发布时间】:2014-06-05 19:56:27
【问题描述】:

我有一个 Google App Engine 应用程序:

  1. 验证用户并授权drive.file scope

  2. 通过应用程序拥有的'regular' Google 帐户代表用户创建和存储文件;

  3. 与用户共享该文件(授予写入权限)。

但是,当用户尝试通过应用创建的授权 Drive 服务更新其中一个文件时,会引发 following exception

403: The authenticated user has not granted the app {appId} access to the file {fileId}.

我错过了什么?鉴于该文件最初由应用程序创建并仍归应用程序所有,为什么用户需要专门授予应用程序对该文件的访问权限?

我的目标是让用户以他们自己的身份修改文件(他们具有写入权限,存储在应用程序拥有的帐户中/拥有的文件),以维护适当的“最后修改用户” '归属。

除了 (a) 授权“驱动器”范围,(b) 使用 Google Picker 或驱动器 UI 以“显式”打开我的应用程序文件(这是否意味着文件必须存在于用户的云端硬盘帐户中?),还是(c)让我的应用程序拥有的帐户执行所有文件更新操作?

【问题讨论】:

    标签: google-app-engine google-drive-api


    【解决方案1】:

    文件范围授权当前是作为用户-应用程序对完成的。每个用户必须单独授权应用访问文件。

    鉴于此,我认为您已经确定了可能的解决方案。对于 b,文件不需要由用户拥有,他们只需要访问它。与他们分享就足够了。

    【讨论】:

    • 感谢您的回复-我想我的理解不完整。用户是否已经通过授权 drive.file 范围授予应用程序访问这些文件的权限?鉴于我上面描述的范例,这是否意味着我必须使用 Picker UI 进行文件管理?如果是这种情况,有没有办法使用 Picker 直接创建新文件或删除现有文件?
    • 每个用户必须单独授权应用程序以用户身份查看每个文件。授权应用程序的其他用户对当前用户没有任何作用。应用程序创建的文件始终可以由同一用户访问。
    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多