userRateLimitExceeded错误

时间:2014-12-20 15:05:14

标签: google-api google-drive-api google-docs google-docs-api

我正在尝试创建一个可以自动为我们的团队共享文档的应用。 我使用API​​方法“drive.permissions.insert”。一切都很好,但一段时间后我开始出错:

{
 "error": {
  "errors": [
   { 
    "domain": "usageLimits",
    "reason": "userRateLimitExceeded",
    "message": "Rate limit exceeded. User message: \"Квота совместного доступа превышена.\""
   }
   ],
   "code": 403,
   "message": "Rate limit exceeded. User message: \"Квота совместного доступа превышена.\""
  }
}

我的请求exapmle:

POST https://www.googleapis.com/drive/v2/files/0B_7sOpJvz1WpZnczelg2aXRXYjA/permissions?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.4gABrB78psFgf0uFQJMSGOkC8rSnw7ckN2kX9rwCAou3lGM-JD4GZvGCHukAjWvQop9g55iPzkE7Yw
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "role": "writer",
 "type": "user",
 "value": "user@gmail.com"
}

我知道我遇到了一些固有的API限制。

如何解决这些限制?

是否有助于连接支付API结算?

2 个答案:

答案 0 :(得分:0)

线索就在问题中。 "超出限额。"表示您过快地向云端硬盘提交请求。

Drive可以很好地处理(大约)20次更新事务的爆发,但之后它会将事务限制为每2秒约1次。此限制无法更改。

答案 1 :(得分:0)

您的应用需要实施exponential backoff,而不是尝试自行隔离请求。连续发送它们,直到您获得速率限制超出错误,然后退回并重试,直到您再次成功通话。