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

使用Google Apps Script调用People API时的信息缺失问题排查

解决Google Apps Script调用People API的两个问题

问题1:仅能获取85人数据——分页处理

People API的listDirectoryPeople方法默认分页返回结果,单次请求有数量限制。要获取全部330人数据,必须通过nextPageToken循环发起请求,直到没有下一页数据为止。

问题2:无法获取姓名、昵称——修正参数配置

  • 确保readMask明确包含names、nicknames字段(你当前代码仅指定了names,emailAddresses,需补充nicknames)
  • 调整sources参数,同时包含域配置文件和联系人数据源,确保能拉取到姓名类信息

修改后的完整代码

function obtenerDirectorioCompleto() {
  let allPeople = [];
  let pageToken = null;

  do {
    var directorio = People.People.listDirectoryPeople({
      readMask: 'names,emailAddresses,nicknames,phoneNumbers,resourceName',
      sources: 'DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE,DIRECTORY_SOURCE_TYPE_CONTACT',
      mergeSources: 'DIRECTORY_MERGE_SOURCE_TYPE_CONTACT',
      pageToken: pageToken
    });

    if (directorio.people && directorio.people.length > 0) {
      allPeople = allPeople.concat(directorio.people);
    }

    pageToken = directorio.nextPageToken;
  } while (pageToken);

  // 写入Google表格(示例:创建新表格,可替换为已有表格ID)
  const sheet = SpreadsheetApp.create('企业通讯录').getActiveSheet();
  sheet.appendRow(['姓名', '昵称', '邮箱', '手机号', 'ID']);

  allPeople.forEach(person => {
    const name = person.names ? person.names[0].displayName : '无';
    const nickname = person.nicknames ? person.nicknames[0].value : '无';
    const email = person.emailAddresses ? person.emailAddresses[0].value : '无';
    const phone = person.phoneNumbers ? person.phoneNumbers[0].value : '无';
    const id = person.resourceName ? person.resourceName.split('/').pop() : '无';
    
    sheet.appendRow([name, nickname, email, phone, id]);
  });

  Logger.log(`共获取${allPeople.length}条联系人数据`);
}

关键说明

  • 分页逻辑:通过do-while循环,每次请求带上上一页的pageToken,直到nextPageToken为空,确保拉取全部数据
  • 字段读取:判断字段是否存在(避免部分用户无昵称/手机号导致报错),提取对应信息
  • 表格写入:自动创建新表格并写入表头,若需写入已有表格,可替换SpreadsheetApp.create为SpreadsheetApp.openById("你的表格ID")

内容的提问来源于stack exchange,提问作者P CP

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:25:06