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

Google Apps Script中ContactsApp.getContact(email)迁移至People API的写法

Google Apps Script 中使用 People API 实现联系人查询的等效方案

前置准备

首先需要在你的 Apps Script 项目中启用 People API 服务:

  • 打开项目编辑器,点击左侧侧边栏「服务」旁的「+」按钮
  • 在服务列表中找到「People API」,选择v1版本后点击「添加」即可

等效实现代码

原有 ContactsApp.getContact(email) 功能可通过以下代码实现,行为与原方法基本一致,无匹配结果时返回null:

function getContactByEmail(targetEmail) {
  const searchOptions = {
    query: targetEmail,
    // 按需配置需要返回的联系人字段,多个字段用英文逗号分隔
    readMask: "names,emailAddresses,phoneNumbers,organizations,addresses",
    pageSize: 1
  }

  try {
    const searchResult = People.People.searchContacts(searchOptions);
    if (searchResult.results && searchResult.results.length > 0) {
      // 返回第一个匹配的联系人,和原ContactsApp逻辑一致
      return searchResult.results[0].person;
    }
    return null;
  } catch (err) {
    console.error("联系人查询失败:" + err.toString());
    return null;
  }
}

使用示例

// 调用示例,替换为你要查询的邮箱
const targetContact = getContactByEmail("xxx@example.com");
if (targetContact) {
  // 读取联系人姓名示例
  const contactName = targetContact.names?.[0]?.displayName;
  // 读取联系人手机号示例
  const contactPhone = targetContact.phoneNumbers?.[0]?.value;
}

补充说明

  • 注意:readMask为必填参数,未明确指定需要返回的字段会触发接口报错
  • 上述代码默认查询个人私人联系人库,如果你需要查询企业域的全局通讯录,可将搜索方法替换为 People.People.listDirectoryPeople,额外添加参数 sources: "DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT" 即可
  • 如果你需要返回所有匹配该邮箱的联系人,可将pageSize参数调整为更大的数值,最多支持100条

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:54:03