我正在使用this example,使用我的自定义参数来仅获取特定的消息。我的问题是maxResults不工作,并且我找不到如何排除来自某些域的消息。这是我的自定义函数:
public function listMessages($userId) {
$client= $this->getClient();
$service = new Google_Service_Gmail($client);
$pageToken = NULL;
$messages = array();
$opt_param = array(
'maxResults' => 20,
'q'=>'!in:chats'
);
do {
try {
if($pageToken) {
$opt_param['pageToken'] = $pageToken;
}
$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;
}我仍然收到我所有的消息(除了hangout消息,这是唯一有效的过滤器)
发布于 2017-03-28 17:58:37
Maxrows用于分页。如果结果返回1000行,并且您将最大行数设置为100,则必须对nextpagetoken翻页10次才能获得所有结果。
将maxrows设置为20不会对您有所帮助,因为我认为min maxrows大约是100 (我相信这是大多数Google API的默认设置)。除非您的请求生成的行数少于100行,否则您得到的行数永远不会少于100行。
试试'q'=>'!@example.com'
https://stackoverflow.com/questions/43065470
复制相似问题