Google People API directory_people仅返回调用者姓名,其他用户姓名缺失求助
解决方法
1. 确认OAuth授权范围是否正确
确保应用请求的是适用于Workspace目录的People API权限范围,需使用以下任一scope:
https://www.googleapis.com/auth/admin.directory.user.readonly:允许读取Workspace目录下所有用户信息(需管理员授权)https://www.googleapis.com/auth/people.read:允许读取当前用户可访问的目录人员信息
若之前的权限范围被误修改,会导致无法获取其他用户的姓名,重新授权时务必指定上述scope。
2. 调整sources参数组合
当前请求仅使用DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE,尝试添加DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT,修改后的代码如下:
response = list_person_directory_people( page_size: limit, # NOTE: 1000 is max supported value for this api read_mask: 'emailAddresses,names,photos', sources: ['DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE', 'DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT'] ) response&.people
域联系人来源通常包含更完整的用户姓名信息,部分Workspace配置下域配置文件的姓名字段可能被限制可见。
3. 检查Workspace管理员控制台的用户可见性设置
登录Google Workspace管理员控制台:
- 进入用户 > 用户设置
- 找到目录共享选项,确认已开启“允许用户查看目录中的所有用户信息”(至少确保姓名字段可见)
- 检查单个用户的隐私配置,确认其他用户的姓名未被设置为仅自身可见
4. 通过API Explorer验证请求权限
使用Google API Explorer直接测试people.directoryPeople.list接口:
- 选择正确的OAuth scope并登录管理员账号
- 设置与代码中一致的
read_mask和sources参数 - 查看返回结果是否包含其他用户姓名
若API Explorer能正常返回,说明问题出在Ruby代码的授权流程;若同样无法返回,需联系Google Workspace支持排查域级配置问题。
内容的提问来源于stack exchange,提问作者user20443106
相关产品推荐
相关产品推荐

