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

时间:2017-02-06 20:45:50

标签: php gmail-api

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

$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封邮件。

1 个答案:

答案 0 :(得分:3)

所以我刚刚意识到,你收到了所有的消息,因为即使你是以100分为单位得到它们,你最终会在循环中这样做,直到你得到所有消息为止你的收件箱......

如果你只想要前100个,那就试试吧:

os.getcwd()

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

希望这有帮助!