使用 Google Drive api 的权限列表中缺少电子邮件地址

问题描述 投票:0回答:1

我正在使用谷歌驱动器授予驱动器文件夹权限。我可以使用 Google Drive API 创建共享云端硬盘的权限,但当我获取列表时,我没有获得权限电子邮件地址

const drive = google.drive({ version: 'v3', auth: oauth2Client });
await drive.permissions.create({
          fileId: franchiseFolderId,
          supportsAllDrives: true,
          requestBody: {
            type: 'user',
            role: 'writer',
            emailAddress: userEmail,
          },
        });
const permissions = await drive.permissions.list({
          fileId: folderId,
          supportsAllDrives: true,
        });
console.log('permissions', permissions.data.permissions);

从上面的权限控制台我只能得到这些信息

[{
id: 'XXXXXXXXXXXXXXXXXXX',
type: 'user',
kind: 'drive#permission',
role: 'writer'
  }]

电子邮件地址存在于打字稿类型文件中,但不在响应中。 我正在使用 google oauth 2 进行授权,并且在生成令牌时添加了一个范围

https://www.googleapis.com/auth/drive
node.js google-api google-drive-api
1个回答
5
投票

在 Drive API v3 的“权限:列表”的情况下,似乎未将电子邮件地址作为默认值返回。那么,在您的显示脚本中,如何使用

fields
属性,如下所示?

来自:

const permissions = await drive.permissions.list({
          fileId: folderId,
          supportsAllDrives: true,
        });

致:

const permissions = await drive.permissions.list({
          fileId: folderId,
          supportsAllDrives: true,
          fields: "*", // <--- Added
        });

注:

  • 如果您只想检索权限 ID 和电子邮件地址,您还可以使用

    fields
    的值,如下所示。

      fields: "permissions(id,emailAddress),nextPageToken",
    

参考:

© www.soinside.com 2019 - 2024. All rights reserved.