当我只使用一个请求时,为什么会收到429错误,告诉我超出了用户速率限制?:
$messagesResponse = $service->users_messages->listUsersMessages('me');我最近收到了这个错误,我检查了我的配额,当我得到它的listUserMessages (messages.list请求)计数为5个单位,我在一秒钟内得到250个单位的限制。
真的搞不懂。
一些代码(这里我也使用了搜索查询,但是否有"q“参数并不重要):
class MessageReceiver implements ReceiverContract {
/**
* @var Google_Client
*/
protected $client;
/**
* Inject dependencies.
*/
public function __construct()
{
$this->client = new Google_Client();
$this->client->setClientId(config('services.gmail.clientId'));
$this->client->setClientSecret(config('services.gmail.clientSecret'));
}
public function searchMessages($user, $query)
{
$this->client->refreshToken($user->google_refresh_token);
$service = new Google_Service_Gmail($this->client);
$pageToken = null;
$messages = [];
do {
$this->client->setUseBatch(false);
try {
$messagesResponse = $service->users_messages->listUsersMessages('me',
['pageToken' => $pageToken, 'q' => $query]
);
} catch (\Google_Service_Exception $e) {
dd($e->getErrors()); // 429 error
}
...
}发布于 2015-06-05 07:40:50
错误429,当您的应用程序同时发送多个请求时,会发生“请求太多”。也许可以尝试实现指数回退?
https://developers.google.com/drive/web/handle-errors
Google的PHP client API还在Beta中,所以现在来看看它的Java实现:https://developers.google.com/api-client-library/java/google-http-java-client/backoff
https://stackoverflow.com/questions/30653976
复制相似问题