在团队驱动器

时间:2018-03-21 15:48:20

标签: javascript node.js google-drive-api

我正在尝试获取Google团队驱动器中所有文件的列表。代码如下:

drive.files.list({
    auth: oauth2Client,
    corpora: "teamDrive",
    includeTeamDriveItems: true,
    supportsTeamDrives: true,
    teamDriveId: someId
}, (err, response) => {
    if (err) {
        console.error("The API returned an error: " + err;
        return;
    }

    console.log(response);
});

但是,这只会返回位于我自己的驱动器中的文件,而不会返回位于共享驱动器中的文件。

然后我转到files.list documentation,并使用旁边的“试用此API”框输入完全相同的信息(以及相同的范围https://www.googleapis.com/auth/drive),并使用相同的身份验证谷歌帐户。这会按预期返回位于团队驱动器中的文件。

那么,我在代码中做错了什么会导致它不返回团队驱动器中的文件,为了使它工作,我必须做些什么改变?

1 个答案:

答案 0 :(得分:0)

感谢github页面上的this issue找到了原因和解决方案。

基本上,谷歌提供的快速入门指南告诉你使用google-auth-library@0.*这个包,这是一个很大的错误。似乎google-auth-library的v0。*错误地处理了您传递的参数,这意味着它们不会包含在请求中。幸运的是,googleapis软件包包含自己的更新版本的google-auth-library,因此您可以使用它进行身份验证。一旦改变了,原始问题中的代码就会按预期工作。