【问题标题】:Gmail API getting all Gmail Inbox messages limits to 500Gmail API 将所有 Gmail 收件箱邮件限制为 500
【发布时间】:2017-09-02 08:11:38
【问题描述】:

我正在尝试获取 Gmail API 中的所有收件箱消息,但每个请求限制为 500 条。我想获取所有消息,并且存储库中的当前消息是 1600+,但我只能在一次请求时获得 500。

$service = new Google_Service_Gmail($client);
$user = 'me';

$params = array(
    'labelIds' => 'INBOX', 
    'maxResults' => 20000
);

$last_date = mysqli_fetch_array($query);
extract($last_date);


$date = date_create($latest);
$date->modify('-1 day');
$filter_date = date_format($date, 'Y/m/d');
$params['q'] = 'in:inbox after:'.$filter_date ;

$messages = $service->users_messages->listUsersMessages( $user, $params );
$list = $messages->getMessages();
//$list only has 500 messages returned to me.

【问题讨论】:

  • 1600/500 = 发出 4 个请求
  • @nogad,会尝试的。但是 gmail api 将请求限制为一个请求的 500 条消息真的很奇怪?我不知道他们的 api 请求有限制吗? afaik对此没有限制
  • @ChristianBurgos 我实现了这个,我发现有限制。即使是移动电子邮件客户端也有获取限制。
  • @Gaurav 是你得到的限制也是 500?
  • @ChristianBurgos 是的。

标签: php google-api gmail gmail-api


【解决方案1】:

为了清楚起见,这就是正在发生的事情。您执行了一个Users.messages: list,它获取了 1600 多条消息。现在我很确定 Gmail 提取了这 1600 多条消息,但它一次只能显示 500 条消息。

如果您想访问接下来的 501-1000 条消息,您需要使用每个成功响应随附的 nextPageToken。接下来的 1001 到 1500 条消息会如此继续。

你可以阅读Gmail Request body这里提到的nextPageToken

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 2015-04-07
    • 2014-08-30
    • 2014-10-23
    • 1970-01-01
    • 2014-08-26
    • 2019-10-24
    • 2011-06-04
    • 1970-01-01
    相关资源
    最近更新 更多