gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:14:44 26 4
gpt4 key购买 nike

我正在努力设置 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com