You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Drive API获取权限列表时无法获取用户邮箱地址的问题

Google Drive API权限列表无法获取用户邮箱问题解决

问题说明

在使用Google Drive API为共享云端硬盘文件夹配置权限时,能成功创建权限记录,但调用permissions.list接口获取权限列表时,无法拿到对应的用户邮箱地址。尽管TypeScript的类型定义中包含emailAddress字段,但接口响应里并未返回该字段。

授权采用Google OAuth2方式,生成令牌时仅设置了权限范围:https://www.googleapis.com/auth/drive。

相关代码

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 Drive API v3的permissions.list接口默认不会返回邮箱这类敏感信息,需要显式通过fields参数指定要返回的字段,包含emailAddress即可。

修改permissions.list的调用代码,添加fields参数:

const permissions = await drive.permissions.list({
          fileId: folderId,
          supportsAllDrives: true,
          fields: 'permissions(id,type,role,emailAddress)'
        });

如果需要返回所有可用字段,也可以使用通配符:

fields: '*'

另外,当前使用的https://www.googleapis.com/auth/drive权限范围已足够获取这些信息,无需额外添加其他权限范围。

内容的提问来源于stack exchange,提问作者Qaim Siddiqui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:45:38