You need to enable JavaScript to run this app. 如何在Google Apps Script中通过People API创建新联系人分组
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps Script中通过People API创建新联系人分组

Google Apps Script 借助People API创建联系人分组的实现方法

现有代码的问题

  • 查找分组返回null时,直接调用People.ContactGroups.get(null)会触发接口报错,无法执行后续的创建逻辑
  • People.ContactGroups.create方法不能直接传入字符串作为参数,需要构造符合规范的请求体结构

前置准备

使用前需要先在Google Apps Script编辑器中启用People API:点击顶部菜单「扩展」→「Apps Script API」,找到People API后开启对应权限即可。

修正后完整代码

function findContactGroupId(groupName) {
  // 只查询用户自定义分组,过滤系统内置分组,不需要可直接删除list方法的入参
  const allContactGroups = People.ContactGroups.list({groupType: 'USER_CONTACT_GROUP'});
  if (!allContactGroups.contactGroups) return null;
  for (let i = 0; i < allContactGroups.contactGroups.length; i++) {
    const group = allContactGroups.contactGroups[i];
    if (group.name === groupName) {
      return group.resourceName;
    }
  }
  return null;
}

function somefunc() {
  const contactGroupName = "foo";
  const contactGroupResourceName = findContactGroupId(contactGroupName);
  Logger.log("got resource id: %s", contactGroupResourceName);

  let contactGroup;
  if (contactGroupResourceName) {
    // 仅当分组存在时调用get方法获取详情
    contactGroup = People.ContactGroups.get(contactGroupResourceName);
  } else {
    // 构造符合People API要求的创建请求参数
    contactGroup = People.ContactGroups.create({
      contactGroup: {
        name: contactGroupName
      }
    });
    Logger.log("Contact Group %s created", contactGroup.name);
  }
}

关键修改说明

  • 移除了原代码中会触发报错的空值get调用,仅当查找函数返回有效资源ID时才调用接口查询分组详情
  • 创建分组的请求体按照CreateContactGroupRequest规范构造,内层contactGroup字段指定分组名称
  • 新增groupType参数过滤系统内置分组,减少无效遍历,不需要该逻辑可直接删除list方法的入参
  • 所有变量添加声明符,避免全局变量污染

内容的提问来源于stack exchange,提问作者Chris W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:42:03