调用Google People API的deleteContact方法无法删除共享联系人如何解决?
无法删除Google域共享联系人的原因及解决方法
你遇到的报错本质上是两个核心问题共同导致的:
- 调用的API方法不匹配
deleteContact是Google People API专门用于操作用户个人私有联系人的方法,仅能处理归属于当前认证用户个人联系人列表的资源。你通过listDirectoryPeople拉取到的DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT类型资源属于域级共享目录资源,不属于个人联系人范畴,所以People API会判定你传入的resourceName不是合法的个人联系人资源,直接抛出错误。 - 权限配置不符合要求
你当前配置的https://www.googleapis.com/auth/directory.readonly是域目录的只读权限,本身就不支持任何删除类的写操作;而https://www.googleapis.com/auth/contacts仅对个人联系人生效,对域共享联系人没有操作权限。
解决步骤
- 切换到正确的API:删除域共享联系人需要使用 Admin SDK Directory API 下的
domainSharedContacts.delete接口,不要继续使用People API的deleteContact方法。 - 更新权限范围,移除不需要的权限,添加域共享联系人的写权限:
SCOPES = [ 'https://www.googleapis.com/auth/admin.directory.domain.sharedcontact' ]
- 调用接口时传入你之前获取到的域共享联系人对应的
resourceName即可完成删除操作。
内容的提问来源于stack exchange,提问作者pixelrebel
相关产品推荐
相关产品推荐

