问题标签 [google-drive-shared-drive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
131 浏览

c# - 无法使用服务帐户搜索谷歌驱动器文件

我有一个 gmail 帐户说 abc@gmail.com,我已经生成了一个使用 google drive search api 的客户端密码。通过这个示例代码,我能够使用我的控制台应用程序搜索和获取文件。但是这段代码将令牌保存到本地驱动器上,因此为了以编程方式传递凭据,我创建了一个Service Account如本文所述

我创建的服务帐户具有以下角色-

  1. 服务帐号管理员
  2. 服务帐号密钥管理员
  3. 服务帐户令牌创建者
  4. 服务帐号用户
  5. 所有者

但是,当我尝试使用服务帐户获取文件时,即使我的 abc@gmail.com 帐户驱动器中有文件,它也不会返回任何文件。

这是我的代码-

0 投票
1 回答
745 浏览

c# - 在从驱动器获取文件时传递用户以模拟

我创建了一个 Web 应用程序,在其中实现了 google 登录。我想为其添加搜索功能,用户可以在其中搜索他/她的驱动器中存在的任何文件。在 Google Drive Api 的示例代码中,应用程序打开浏览器窗口,提供凭据后,令牌存储在本地,我想通过代码传递凭据,因此为此创建了一个服务帐户。

谷歌文档中,它写道Your application now has the authority to make API calls as users in your domain (to "impersonate" users). When you prepare to make authorized API calls, you specify the user to impersonate.

这是我的代码-

在上面的代码中,我可以在哪里传递模拟用户的电子邮件 ID?我正在为我的应用程序使用 g-suite 帐户。我试图credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes);credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes).CreateWithUser("userid@gmail.com");

它给出了一个例外说

{"Error:\"unauthorized_client\", Description:\"客户端未经授权无法使用此方法检索访问令牌。\", Uri:\"\""}

0 投票
1 回答
339 浏览

python - GCP Python - Google TeamDrive API - 权限

在使用 Google Team Drive API 的权限部分时非常感谢一些建议: https ://developers.google.com/drive/v3/reference/permissions

我目前正在编写一段代码,它将创建一个团队驱动器,通过 ID 创建一些文件(mimetype 文件夹)到团队驱动器,然后将一个用户作为一个组添加到团队驱动器。

该代码使用 API 成功地为每个人创建了团队驱动器和文件夹,但是,当我将用户添加到团队驱动器时,我的响应完全不同,例如:

这将返回预期的响应:

这确认代码已按预期运行,与 .files() 相同。

现在,当我尝试将成员(组)添加到团队云端硬盘时,我得到了完全不同的东西:

这将返回响应:

使用 Permissions Insert API 时:我期望的响应是:

如果我能就这个问题得到任何帮助,我会非常感激,因为我真的很困惑它是如何不起作用的。

谢谢, PyJordan

0 投票
3 回答
4847 浏览

google-apps-script - 如何在团队云端硬盘中创建文件夹?

这是我第一次提交问题,所以如果我能更好地问这个问题,请帮助我。

我想要:

  • 创建文件夹
  • 在谷歌团队驱动器中
  • 嵌套在现有的团队云端硬盘文件夹“路径”中</li>
  • 来自 Google Apps 脚本,可以在脚本文件中或附加到 Google 表格

我相信这些资源会告诉我如何创建 Team Drive 文件夹:

方案 A:使用 GAS 创建一个文件夹。经过一番研究,据我了解,普通 GAS 尚无法在 Team Drive 中创建文件夹。

[18-03-15 14:55:23:674 EDT] 执行失败:无法在团队驱动器项目上使用此操作。(第 139 行,文件“utils”)[1.618 秒总运行时间]

如果我错了,并且有一种简单的方法可以使 addFolder() 代码与 Team Drive 一起使用,那将是一场胜利。

更新 1:可以使用普通 GAS 在团队云端硬盘中创建一个文件夹。限制移动的是文件夹。这有效:

所以计划 B:现在,我正在尝试使用 Google Drive REST API v3 创建文件夹。但是,即使 TEAM_ROOT_PATH_FOLDER_ID 在团队驱动器中,当我运行我的代码时,我只会在我的个人驱动器中获得一个无标题文件。我认为我的问题是向 UrlFetchApp.fetch 获取正确的信息。就像没有读取请求正文一样。

参考:

这是我使用 Google Apps 脚本和 Drive REST API 创建文件夹的代码:

但是,当我通过 API 测试运行 REST 调用时,我可以让一个文件夹出现在我的个人驱动器中(仍然错误):

支持团队驱动器 > 真

WORKS(在个人驱动器根目录中创建的 TeamDriveTestFolder 文件夹):

失败(404):

感谢您在破解此 Team 文件夹创建方面的任何帮助。

0 投票
1 回答
1581 浏览

google-apps-script - 文件夹 getParents 无法在 Google 脚本中获取团队驱动器名称

我正在尝试使用脚本在团队驱动器中建立文档的完整路径。代码如下所示:

此脚本绑定到一个文档以进行测试。

但是当我到达根目录时,它并没有返回 Team Drive 的实际名称,例如“Accounting”或“Marketing”,而是返回“Team Drive”。我需要知道团队云端硬盘的实际名称,为什么我没有收到此信息?如果我在绑定到“我的驱动器”中的文档的脚本中运行它,它会在根目录中显示“我的驱动器”——这至少是有道理的,因为这是我在浏览器中看到的实际名称。在 Team Drive 中,根实际上是“Team Drives”而不是“Team Drive”。

0 投票
2 回答
1453 浏览

google-drive-api - 任何拥有共享 google 链接的人都可以在没有 google 帐户的情况下将文件添加到该文件夹​​吗

我有一个 google drive 共享文件夹链接,它具有添加文件或编辑文件等写入权限。

我的问题是如果他/她有这个链接,任何没有谷歌帐户的人仍然可以添加文件。因为我自己试过了,它不允许,但同时为什么特权说任何有这个链接的人都可以添加文件。

0 投票
2 回答
943 浏览

file-upload - 关于如何在 Google AppMaker 中上传文件的示例或模板

谁能与我分享文档批准模板的 .zip 文件, 因为我无法打开它,因为我没有使用 GCS,但我想了解他们如何使用 Drive Picker 小部件上传文件等等。

我得到的错误

另一件事是,文件将上传到哪里?是所有者的驱动器吗?是否可以将文档上传到团队云端硬盘的单个文件夹中?如果有人可以与我分享一些想法或任何 API 都可以,真的很感激,谢谢!

0 投票
1 回答
4945 浏览

google-apps-script - 使用 Apps 脚本在 Google 共享驱动器(团队驱动器)文件夹之间移动文件

我正在为共享驱动器(团队驱动器)创建一个工作流,其中我在团队驱动器下有 3 个文件夹:
待批准
批准
拒绝

我正在从 TO BE APPROVED 文件夹发送一个文档以供批准,如果用户批准它,那么这个文档应该移动到 APPROVED 文件夹。REJECTED 的逻辑相同。

现在我的问题是如何在共享驱动器文件夹之间移动文档。DriveApp.getFolderById(folderId).addFile()无法工作,因为我在团队云端硬盘中不能有多个家长。 DriveApp.getFolderById(folderId).createFile()正在工作,但它正在创建一个具有新 ID 的全新文件,这不符合我批准工作流程的目的,因为这是一个全新的文件。

有什么方法可以移动文件或复制/替换任何不会更改我的文件 ID 的操作?我也尝试过 REST API,但找不到任何东西。

0 投票
0 回答
349 浏览

google-apps-script - 可以使用谷歌脚本将文件从 teamdrive 移动到 gdrive 吗?

我是一个团队驱动器和我自己的谷歌驱动器的所有者。

我想每周将某个文件夹从我的团队驱动器移动到谷歌驱动器。

这可以使用谷歌脚本应用程序吗?

当我查看 API 时,我没有看到任何团队驱动或移动功能,所以我假设这是不可能的。

0 投票
1 回答
3519 浏览

javascript - Google DRIVE API V3 - 使用 nodejs 获取根文件夹 ID

我需要获取根文件夹 id 并过滤以根文件夹为父文件夹的文件夹。使用 Nodejs 和 google drive API v3 。这是我的代码以及如何更改此代码以获取根文件夹 ID?