【问题标题】:Google Drive API permission propagation and the File userPermission propertyGoogle Drive API 权限传播和 File userPermission 属性
【发布时间】:2013-08-03 14:28:23
【问题描述】:

我不确定我是否遇到错误或我做错了什么。我正在开发一个应用程序,允许用户在他们的 Google Drive 上创建和共享一个文件夹,以便他们可以就文件夹的内容进行协作。该文件夹是在用户的 Google Drive 的根目录下创建的,最初包含几个文件和一个包含更多文件的子文件夹。

第一个问题是在主文件夹上插入新权限后,权限通常会向下传播到所有文件和子文件夹,但有时会无法在子目录中的某个文件上插入权限.这种将权限传播到子目录的功能是官方支持的,还是我想分别在所有文件中插入权限?

我遇到的第二个问题涉及使用文件的 userPermission 属性来检查当前用户的角色是否已更改。似乎 userPermission 属性有时包含最近用户而不是当前用户的权限。我正在尝试实现的功能是共享文件夹的用户能够定期检查他们的权限角色是否已更改。例如,用户权限角色是否从“读者”更改为“作者”,反之亦然。这通常通过列出具有 fileId 的文件夹并检查文件的 userPermission 属性的角色属性来工作。但是,如果我在同一个客户端中同时与共享用户和共享该用户的用户一起测试此功能,则获取文件结果通常会将 userPermission 列为访问文件的最后一个,而不是当前用户。我已经测试了这是否是因为我在请求标头中使用了错误的 oauth 信息,但我已经排除了这种可能性,oauth 标头对于每个单独的获取文件的调用都是正确的。在调用获取文件以确认授权用户是谁之前,我添加了一个关于女巫列表用户permissionId 的测试调用。为错误的用户显示带有“我”名称的 userPermission。

我发现的解决方法是使用列表文件,它返回列表中具有正确用户权限的文件。

在位于https://developers.google.com/drive/v2/reference/files#resource 的参考中,关于 userPermission 属性的描述是“经过身份验证的用户对此文件的权限。”

我错误地将其解释为 userPermission 将始终显示当前用户的角色?如果它显示错误的权限,可能是什么原因??

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    userPermissionme 代表当前已通过身份验证的用户,如果它显示错误的权限,则表示您使用错误的令牌对用户进行身份验证。

    权限通常会向下传播到所有文件和子文件夹

    这种情况可能不适用于具有自己明确权限的子文件夹和文件。

    【讨论】:

      【解决方案2】:

      关于第一个问题,即共享文件夹后,只有其中一个内容始终无法共享,我找到了原因。未共享的文件实际上是 Fusion Tables 文件,在我的脚本中,插入权限后立即调用以将新行插入 Fusion 表文件,这似乎阻止了将权限添加到该文件在那个时候,或者永远。所以我找到的解决方法是在调用插入权限后等待几秒钟,然后在调用 Fusion Tables 查询之前使用列表权限调用检查权限是否已经到位。

      现在关于第二个问题,这可能是某种错误,因为我确认我使用的是正确的 oauth 令牌,而且我找到的解决方法有效,即使用调用列表文件而不是获取文件。唯一的区别是除了文件 id 之外,还需要文件名或其他查询参数才能进行调用。在我的情况下,与列表文件一起返回的文件对象将始终在 userPermission 字段中包含正确的值,而对于 get 文件,userPermission 有时会包含其他用户的信息。

      【讨论】:

      • 我在文件共享权限方面也面临同样的问题。我正在使用 Google Drive API 与其他 Google 帐户用户共享 Google Drive 文件。有时我的文件与其他谷歌用户 email_id 共享,但有时它不共享。是否需要进行配置才能解决此问题?
      猜你喜欢
      • 2016-09-02
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多