Google drive api 响应中未填充权限资源的值属性

Google drive api 响应中未填充权限资源的值属性,google-drive-api,Google Drive Api,看看: API不会返回包含ACL电子邮件地址值的values属性。不清楚为什么不返回该值,我假设这是一个隐私问题,但这意味着Drive SDK无法支持文档迁移(从一个Google帐户迁移到另一个帐户)旧文档列表API v3可以: 目前,我正在考虑为我的项目添加驱动器API和Docs v3 API作用域,并仅使用Docs API调用来检索ACL,但理想情况下,我可以只使用驱动器API调用。我遗漏了什么吗?是否可以在驱动器API中添加一个允许ACL电子邮件地址检索的特殊作用域,或者是否有其他方法

看看:

API不会返回包含ACL电子邮件地址值的values属性。不清楚为什么不返回该值,我假设这是一个隐私问题,但这意味着Drive SDK无法支持文档迁移(从一个Google帐户迁移到另一个帐户)旧文档列表API v3可以:

目前,我正在考虑为我的项目添加驱动器API和Docs v3 API作用域,并仅使用Docs API调用来检索ACL,但理想情况下,我可以只使用驱动器API调用。我遗漏了什么吗?是否可以在驱动器API中添加一个允许ACL电子邮件地址检索的特殊作用域,或者是否有其他方法来处理此问题


Jay

你完全正确,出于隐私考虑,电子邮件地址是隐藏的。一个用户应该看到所有其他有权访问该文件的用户的电子邮件地址,这是不对的。但我不确定我是否完全理解这个问题。您是使用服务帐户迁移,还是用户单独授权迁移

权限提要中的值对于每个用户都是一致的,并且该值在用户的关于提要中可用。我假设您知道用户的电子邮件地址,因此您可以使用服务帐户为每个用户授权,并且您可以迁移数据


您不需要驱动器API范围和Docs v3 API范围,它们几乎是相同的范围

谢谢你的提问,杰,谢谢你的回答阿里·阿夫沙

不幸的是,我不明白谷歌认为如果没有用户的电子邮件地址,以下场景应该如何工作:

在Documents List API v3中,您可以将文件a复制到文件B,检索文件a的ACL信息(包括用户电子邮件地址),并将其作为ACL添加到文件B中

使用驱动器API,您可以检索几乎相同的权限信息,但没有用户电子邮件地址,这仍然需要将文件B重新共享给相同的用户

附带说明:如果使用GAS DefaultService DocsList,您仍然可以使用getEditor()或getViewer()接收编辑器/查看器。如果您手动共享一个文件,您也可以查看所有电子邮件地址

因此,如果你问我,隐私问题是一个有价值的论点,但它并不适用于这里


Jan

同样,为了恢复这个旧线程,我在迁移文档时遇到了同样的问题

A workaround:
- Create a temporary folder
- Insert a permission for the user 
- retrieve the id from the permission

不太好,但对我有用。

自从这个问题发布后,驱动器API已经更新,允许发送
permissionId
(id属性)。这允许迁移ACL,而无需知道电子邮件地址(只需直接将PermissionID复制到新文件中)

此外:

  • API调用提供了一种快速获取给定电子邮件地址ID的方法

  • 返回具有的文件的权限时,将包含
    属性,该属性应有助于确定ACL是否引起安全问题


我相信这些功能涵盖了大多数需要实际ACL电子邮件地址检索的用例。

这是一个答案,还是仅仅是一些额外的注释?恢复这个旧线程(由于某种原因从未收到电子邮件通知)。这通常是批量迁移,因此服务帐户(尽管是用户指定的工作流)不会超出可能的范围。如果用户可以通过驱动器用户界面查看文档上共享的用户的电子邮件地址,那么权限的丢失有那么大吗?如果用户的Google唯一ID被公开(类似于G+API中的情况),并且可以用于添加权限,那么可能会更有意义。然后,我就可以“迁移”权限,而不需要知道电子邮件地址。是否有计划更改此设置?我花了2个月的时间开发了一款应用程序,该应用程序从第一天就开始构建,能够提取这些地址,以简化他当前的流程。如果我无法获得这些电子邮件地址,我将不得不放弃整个谷歌框架,从头开始构建一个。我不想这样做,这在某些情况下是可行的,但如果您有id但没有电子邮件(例如,在帐户之间迁移文档),则不可行。如果至少可以插入带有id的ACL,那么现在就可以了,但就目前情况而言,您必须使用电子邮件地址进行插入,如果您还不知道电子邮件地址,您将永远无法发现它。