从 Google 驱动器中获取一个稳定的 link for Multiple excel sheet with same name

Get one stable link for Multiple excel sheets with the same name from Google Drive into PowerBi

我每天都会收到电子邮件中的附件。该附件基本上是一个 excel 电子表格。我正在使用 Microsoft Power Automate 将该电子表格推送到 google 驱动器文件夹 ./attachments。将该电子表格推送到 google 驱动器的主要目的是为了分析目的加载到 PowerBi 中。 在 PowerBi 中,我使用“Web”连接器导入文件,并且工作正常。示例 link 如下。

https://docs.google.com/spreadsheets/u/2/d/1eBJR6wrcFrdjv4Lbf_Wq3MQOeUwBbgLw/export?format=xlsx

上面的 link 将文件导出到 powerBi,因此我可以将数据加载到 PowerBi。

问题是,我每天都会在驱动器中获取新文件,但文件的唯一 ID 不相同。在上面的示例中,第二个文件的唯一 ID 1eBJR6wrcFrdjv4Lbf_Wq3MQOeUwBbgLw 将不同,即使我在推送到 Google Drive 时使用 Microsoft Power Automate 重命名具有相同名称的文件。例如:“PowerBi 加载 file.xlsx”。我是否可以为所有同名文件获得稳定的 link?

我还共享了整个文件夹 ./attachments 并尝试获取文件的 link 但这不起作用。例如:

https://drive.google.com/drive/folders/1h1VuPtXfWflgIQw7ecMTwweoLblADscq/PowerBi Analytics file.xlsx/export?format=xlsx

非常感谢任何帮助和建议。

谢谢大家

我相信你的目标如下。

  1. 您想从文件名中检索文件 ID。
  2. 您想从共享文件夹中检索文件 ID。

问题 1 的答案:

为了从文件名中检索文件 ID,我认为可以使用驱动器 API 的“文件:列表”的方法。

终点如下

GET https://www.googleapis.com/drive/v3/files?q=name%3D%27{filename}%27
  • 搜索查询是 name='{filename}'
  • 在这种情况下,无法直接使用 API 键,因为文件列表试图从包含该文件的 Google 驱动器中检索。在这种情况下,需要使用访问令牌。
    • 据此,我认为您的目标 2 可能是合适的。

问题 2 的答案:

为了从共享文件夹中检索文件ID,我认为也可以使用Drive API 的“Files: list”的方法。在这种情况下,至少从共享文件夹中检索文件列表。这样,就可以使用API键了。

终点如下

GET https://www.googleapis.com/drive/v3/files?q=%271h1VuPtXfWflgIQw7ecMTwweoLblADscq%27%20in%20parents&key=[YOUR_API_KEY]
  • 搜索查询是 '1h1VuPtXfWflgIQw7ecMTwweoLblADscq' in parents
  • 在这种情况下,可以使用API键检索文件列表,因为该文件夹是公开共享的,直接从公开共享中检索文件列表。
    • 但是,为了使用它,需要使用 API 键。请注意这一点。

其他图案:

如果您想在没有 API 密钥和访问令牌的情况下实现您的目标,我建议使用 Google Apps Script 创建的 Web Apps 作为包装器 API.使用此 Web 应用程序时,您可以在不使用 API 密钥和访问令牌的情况下实现上述两个目标。

  • Web Apps的官方文档是here
  • Web Apps 的非官方文档包括几个示例情况是here

参考文献: