【问题标题】:document creation using google APIs in python在 python 中使用谷歌 API 创建文档
【发布时间】:2022-01-20 02:44:21
【问题描述】:

是否可以让谷歌服务帐户访问整个驱动器而不仅仅是文件夹? 我无法在 python 中使用google docs API 切换到新目录。可以跳转到一个文件夹,然后使用google drive APIs 在其中创建文档,但我只想使用docs API,我看不到任何跳转到另一个文件夹的方法。

【问题讨论】:

  • 您好,请注意您在这里提出了很多问题。我建议您编辑您的帖子,以便专注于单个特定问题stackoverflow.com/help/how-to-ask
  • 当然,我会更新问题。
  • jump into another folder 是指将文件移动到其他文件夹?您不能在 Docs API 中执行此操作,您必须为此使用 Drive API。我可以知道您为什么不想使用云端硬盘,而只想使用文档吗?
  • 我在使用 Drive API 时无法向我的文档添加任何内容。我没有得到任何可以使用驱动器 API 进行批量更新的逻辑。在 docs API 中,它很简单 - result = service.documents().batchUpdate(documentId=DOCUMENT_ID, body={'requests': requests}).execute()
  • 当然,batchUpdate 将与 Docs API 一起使用。但是对于文件创建,我建议使用 Drive API,因为您想将其添加到特定文件夹中。请查看我的答案以获取更多信息。

标签: python-3.x google-drive-api google-docs google-docs-api google-api-python-client


【解决方案1】:

是否可以让谷歌服务帐户访问整个驱动器而不仅仅是文件夹?

如果您有 Workspace 域,我建议您向服务帐户授予域范围的权限,以便模拟普通用户的 My Drive 并访问他们可以访问的所有内容。有关如何完成此操作的更多详细信息,请参阅Delegating domain-wide authority to the service account

如果这不适合您,您应该共享云端硬盘上的所有顶级项目,因为没有直接的方法可以共享完整的 My Drive

可以跳转到一个文件夹,然后使用 google drive API 在其中创建文档,但我只想使用 docs API,我看不到任何跳转到另一个文件夹的方法。

您需要使用 Drive API 在文件夹之间移动文件。 Docs API 不能用于此。

旁注:

不确定您是否知道这一点,但请注意,如果您通过 Docs API 创建文档,则只能创建空白文档,因为此方法中会忽略除 title 之外的所有字段(请参阅documents.create)。如果要添加文本、更改其他属性等,则必须使用documents.batchUpdate

我之所以提到这一点,是因为我不知道这是否是您想要通过 Docs API 创建文档的原因。

【讨论】:

  • 目前,当我使用 Google doc API 的 documents.create 方法创建它时,我无法查看驱动器中的文档,因为我无法使用 Google doc 授予服务帐户对整个 My Drive 的访问权限API。所以目前我在驱动器中手动创建一个文档,然后为其提供服务帐户访问权限,然后使用其documentId 在此文档中插入数据。但我不想这样做,我想使用 API 创建文档并为其提供谷歌帐户访问权限。此外,我的帐户不是 Workspace 域。
  • 当我使用 google drive API 时,我可以在我的驱动器中创建一个文件夹,然后可以在其中创建一个黑色文档,但是我无法在文档中插入任何数据,因为 @ 987654333@ 在驱动器 API 中不起作用。
  • @Ask_Ashu 请考虑以下工作流程:(1) 使用 Drive API developers.google.com/drive/api/v3/… 在所需文件夹中创建文件,(2) 使用 Drive API developers.google.com/drive/api/v3/manage-sharing 与服务帐户共享文件,( 3) 获取文件 id,(4) 使用文件 id,调用 Docs API 的documents.batchUpdate 以相应地更新您的文件developers.google.com/docs/api/reference/rest/v1/documents/…
  • 这种方法也行不通。让我用我现在正在尝试的内容更新问题。
  • 好的,我会发布一个新问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多