【发布时间】:2015-08-19 15:54:45
【问题描述】:
为什么我只使用一个请求时收到 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
}
...
}
【问题讨论】:
-
您能否发布完整的响应(HTTP 标头 + 正文)?
-
使用 php lib 时如何获得 http 响应? listUserMessages 抛出异常,我能做的就是输出一些getErrors之类的方法。
标签: php google-api-php-client gmail-api