Google表格脚本调用People API报错:PeopleApi未定义
解决Apps Script中PeopleApi未定义的错误
你遇到的ReferenceError: PeopleApi is not defined错误,核心原因是在Apps Script中添加People API服务后,正确的服务名称是People,而非PeopleApi,代码里的调用名称写错了。以下是具体修复步骤和修正后的代码:
修复步骤
- 确认服务名称:在Apps Script的「Services」标签添加People API时,默认服务标识符为
People,代码必须使用这个正确名称调用。 - 移除多余全局代码:全局范围内的
PeopleApi.getService().setToken(apiKey)不仅名称错误,而且服务会自动处理OAuth授权,无需手动设置令牌。 - 替换代码中的错误调用:将所有
PeopleApi替换为People。
修正后的完整代码
function onFormSubmit() { // 获取表单响应数据 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var lastRow = sheet.getLastRow(); var name = sheet.getRange(lastRow, 2).getValue(); var phone = sheet.getRange(lastRow, 3).getValue(); var address = sheet.getRange(lastRow, 4).getValue(); // 初始化People API服务 var peopleService = People.getService(); // 构建联系人数据 var person = { names: [{ givenName: name }], addresses: [{ formattedValue: address, type: "home" }], phoneNumbers: [{ value: phone, type: "mobile" }] }; // 创建联系人 peopleService.people().createContact(person).execute(); }
额外注意事项
- 第一次运行
onFormSubmit函数时,会弹出权限授权窗口,需允许脚本访问你的联系人数据。 - 确保Google Console中已启用People API(添加服务时通常会自动启用,可前往Console确认)。
- 需正确配置表单触发事件:在Apps Script编辑器的「触发器」菜单中,添加「表单提交」触发器并绑定
onFormSubmit函数。
内容的提问来源于stack exchange,提问作者ambalal shah
相关产品推荐
相关产品推荐

