4

看着:

https://developers.google.com/drive/v2/reference/permissions#resource

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

https://developers.google.com/google-apps/documents-list/#retrieving_the_acl_for_a_document_file_or_collection

现在我正在考虑为我的项目添加 Drive API 和 Docs v3 API 范围,并且只使用 Docs API 调用来检索 ACL,但理想情况下我可以只使用 Drive API 调用。我错过了什么吗?是否可以向 Drive API 添加一个允许 ACL 电子邮件地址检索的特殊范围,或者是否有其他方法来处理这个问题?

周杰伦

4

4 回答 4

2

感谢您的问题杰伊,感谢您的回答阿里阿夫沙尔!

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

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

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

作为旁注:如果您使用 GAS DefaultService DocsList,您仍然可以使用 getEditors() 或 getViewers() 接收编辑器/查看器。如果您手动共享文件,您还可以查看所有电子邮件地址。

所以如果你问我,隐私问题是一个有价值的论点,但它根本不适用于这里。

于 2012-10-04T13:40:50.377 回答
1

您是绝对正确的,电子邮件地址是为了隐私而隐藏的。用户应该看到有权访问该文件的所有其他用户的电子邮件地址是不对的。但我不确定我是否完全明白这个问题。您是使用服务帐户进行迁移,还是由用户单独授权迁移?

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

您不需要 Drive API 范围和 Docs v3 API 范围,它们几乎是相同的范围。

于 2012-08-07T14:31:30.817 回答
1

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

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

不好,但对我有用。

于 2013-02-21T10:13:07.817 回答
1

自发布此问题以来,Drive API 已更新为允许permissionIdpermissions.insert()id属性)上发送。这允许迁移 ACL,而无需知道电子邮件地址(只需将权限 ID 直接复制到新文件中)。

此外:

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

于 2014-07-30T12:22:53.537 回答