我一直在编程地使用Google创建和共享文档。昨天,我开始收到此错误消息,每个请求都要插入一个权限:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"location" : "user.sharing",
"locationType" : "other",
"message" : "Rate limit exceeded. User message: \"Sorry, you have exceeded your sharing quota.\"",
"reason" : "userRateLimitExceeded"
} ],
"message" : "Rate limit exceeded. User message: \"Sorry, you have exceeded your sharing quota.\""
}
我仍然可以编程创建文档,但是插入权限的请求总是失败的。
这是通过一个服务帐户进行的,其想法是,服务帐户将管理应用程序的这些文档,并根据需要与授权用户共享。
在插入大约50-100权限的某个地方后,错误开始发生。我已经做了一些研究,它听起来可能有一个“特性”在Google中,它限制了可以插入的权限的数量。有什么办法可以绕过这个限制吗?
更新:
为了记录在案,我能够每天准确地创建51个权限。在24小时内,创建第52次权限总是失败。不幸的是,此限制使权限API对服务帐户完全无效。
发布于 2015-05-12 17:17:13
正如@zdegenr已经指出的那样,我还体验到,您每24小时只能创建大约50个权限。我可以通过禁用通过sendNotificationEmails
参数:https://developers.google.com/drive/v2/reference/permissions/insert发送通知电子邮件来解决这个问题。
有了这个配置,我就不再达到配额了.
发布于 2015-04-14 17:49:13
尝试sm=93&ie=UTF-8结果中有几个建议,包括请求支持的机制。这要么是一个利率限制错误,在这种情况下,减速,要么是每日配额问题,在这种情况下,要求更高的配额。尽管google这么说,如果您得到了一个速率限制,那么而不是做的是指数退避,因为它会扼杀您的吞吐量。相反,将你的请求节流到每3小时一次,然后加速或减速,直到它们消失。
发布于 2020-02-07 13:38:29
这里有一个实现是.NET
var permissionsBody = new Google.Apis.Drive.v3.Data.Permission()
{
Type = "user",
Role = "reader",
EmailAddress = "emailAddress",
};
var permission = _service.Permissions.Create(permissionsBody, fileId);
permission.SendNotificationEmail = false;
permission.Execute();
https://stackoverflow.com/questions/29630595
复制相似问题