php - 当 maxResults 设置为 100 时,Gmail List API 返回所有邮件

标签 php gmail-api

我正在努力设置 Gmail List API,但出于某种原因,即使我已将 maxResults 设置为 100,它也会返回我收件箱中的所有 5,000 封邮件。这是我当前的代码:

$pageToken = NULL; 
$messages = array();
$opt_param = array();
do {
    try {
        if ($pageToken) {
            $opt_param['pageToken'] = $pageToken;
            $opt_param['maxResults'] = 100;
            $opt_param['labelIds'] = 'INBOX';
        }
        $messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
        if ($messagesResponse->getMessages()) {
            $messages = array_merge($messages, $messagesResponse->getMessages());
            $pageToken = $messagesResponse->getNextPageToken();
        }
    } catch (Exception $e) {
        print 'An error occurred: ' . $e->getMessage();
    }
} while ($pageToken);

foreach ($messages as $message) {
    print 'Message with ID: ' . $message->getId() . '<br/>';
}
return $messages;

我不确定哪里出错了,但我需要能够将收件箱过滤到最近发送的 100 条消息。

最佳答案

所以我刚刚意识到,您会收到所有消息,因为即使您是按 100 条为一组来获取它们,但最终您还是在循环执行此操作,直到您收到 所有 消息你的收件箱……

如果你只想要前 100 个,试试这个:

$messages = array();
try {
  $opt_param = array(
    'maxResults' => 100,
    'labelIds' => 'INBOX'
  );
  $messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
  $messages = $messagesResponse->getMessages();
} catch (Exception $e) {
  print 'An error occurred: ' . $e->getMessage();
}
if(!empty($messages)) {
  foreach ($messages as $message) {
    print 'Message with ID: ' . $message->getId() . '<br/>';
  }
}

return $messages;

所以我删除了 do/while 循环,基本上...

希望这对您有所帮助!

关于php - 当 maxResults 设置为 100 时,Gmail List API 返回所有邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076960/

相关文章:

php - 有没有办法获得注册的自定义帖子类型名称?

php - 带有ajax post的php css中的未定义索引

android - 使用 Android 的 Gmail API 访问

java - Gmail API - 邮件正文包含破折号,无法进行 base64 解码

python - Gmail 应用程序 - 快速入门,错误 : redirect_uri_mismatch

php - 使用 php 的 exec 函数在 Linux 中使用 diff

php - 未找到类 'yii\jui\DatePicker' (yii2 basic)

ruby-on-rails - 如何通过 GMAIL API 发送带有 BCC header 的电子邮件?

php onclick 使用

android - 如何从我的 Android 应用程序访问新的 Gmail API?