问题描述
在调用 People API 的端点时,尤其是在 Batch 请求中,我们会收到许多不同类型的错误响应。
有些在错误信息中有有用的解释,例如:
配额指标“每日联系人写入(批量请求)”超出配额 成本 200 配额)”并限制“每日联系人写入(批量请求成本) 200 配额)每个用户每天“people.googleapis.com”服务 消费者“project_number:XXX”。
您可以检测并正确处理的内容,例如在重试该请求之前等待 24 小时,但有些更神秘,例如:
资源已用完(例如检查配额)。
这确实提到了速率限制,但哪个配额?是按用户还是按 GCP 项目?我们什么时候可以重试?
请注意,我们在同步用户帐户时为第一批调用获取此信息,因此我猜这不是每个用户的配额,但文档中没有提及此类速率限制。
具体来说,处理问题:
- “超出同步配额”
- “资源已用完(例如检查配额)”
- “MY_CONTACTS_OVERFLOW_COUNT”
解决方法
这是我目前所拥有的,请随时编辑此答案以添加更多见解:
身份验证或 Google 后端问题:
- “invalid_grant”:错误的访问令牌
- “权限不足”:访问令牌不包含所需的范围
- “该服务当前不可用。”:Google 问题
- “遇到内部错误。”:Google 问题
- “身份验证后端不可用。”:Google 问题
配额和速率限制:
- “超出同步配额”:???
- “配额指标 X 超出配额”:已超出特定配额(每分钟/每天将成为消息的一部分)
- “资源已用完(例如检查配额)”:???
- “MY_CONTACTS_OVERFLOW_COUNT”:???
错误请求:
- “请求包含无效参数”:请求中有问题,通常是一个带有非法信息项的 Person 对象
- “请求包含与当前 person.etag 不同的 person.etag”:尝试更新最近在 Google 方面更新的人员,需要再次获取
- “请求的 person.etag 与当前的 person.etag 不同”:同上
- “未找到请求的实体”:尝试更新不再存在的人
- “未找到联系人资源”:同上
- “联系人群组名称为空,应为非空”:尝试使用空名称创建/更新群组。
- “联系人群组名称已存在”:尝试创建同名群组