如何通过Google Apps Script管理Google Contacts?遇到权限报错如何解决?
问题根因
你遇到的权限报错和manifest配置、API启用状态无关,核心原因是默认的onEdit属于简单触发器,运行在无授权的受限环境下,无法调用ContactsApp这类需要OAuth权限的服务。
解决方案
你只需要替换为可安装编辑触发器即可解决,操作步骤如下:
- 先修改你现有的函数名,避免和简单触发器的保留名
onEdit冲突,示例修改后代码:
function handleEditContacts(e) { var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contacts"); var rng = e.range; var row = rng.getRow(); var drng = sht.getRange(row, 2, 1, 22).getValues(); var email = sht.getRange(row, 2, 1, 1).getValue(); var gmailContact = ContactsApp.getContactsByEmailAddress(email); Logger.log(gmailContact); }
- 配置可安装触发器
- 打开脚本编辑器页面,点击左侧菜单栏的「触发器」(闹钟样式图标)
- 点击页面右下角「添加触发器」按钮
- 触发函数选择刚才修改后的
handleEditContacts - 事件源选择「电子表格」
- 事件类型选择「编辑」
- 点击保存,按照页面提示完成全量授权即可
- 可选优化
你已经启用了People API,后续做联系人更新操作时,可以直接调用People API接口,功能覆盖范围比旧版ContactsApp更全面,也可以正常在可安装触发器中运行。
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

