我找到了解决办法。如果设置maxResults=>它将从一个令牌中收集100个线程,然后继续收集另一个令牌以获取下一个100。所以我要做的唯一一件事就是一旦线程被提取出来就中断。希望这对别人有帮助。
function listThreads($service, $userId) {
$threads = array();
$pageToken = NULL;
$opt_param = array(
'maxResults' => 100,
'labelIds' => 'INBOX'
);
do {
try {
if ($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$threadsResponse = $service->users_threads->listUsersThreads($userId, $opt_param);
if ($threadsResponse->getThreads()) {
$threads = array_merge($threads, $threadsResponse->getThreads());
//$pageToken = $threadsResponse->getNextPageToken();
break;
}
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
$pageToken = NULL;
$x++;
}
} while ($pageToken);
foreach ($threads as $thread) {
print 'Thread with ID: ' . $thread->getId() . '<br/>';
}
return $threads;
}