Google api 筛选消息列表

Google api 筛选消息列表,google-api,gmail,gmail-api,google-api-php-client,php-5.6,Google Api,Gmail,Gmail Api,Google Api Php Client,Php 5.6,我使用,和我的自定义参数,只获取某些消息。我的问题是maxResults不起作用,我找不到如何从特定域中排除消息。这是我的自定义函数: public function listMessages($userId) { $client= $this->getClient(); $service = new Google_Service_Gmail($client); $pageToken = NULL; $messages = array(); $opt

我使用,和我的自定义参数,只获取某些消息。我的问题是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;
}
公共函数列表消息($userId){
$client=$this->getClient();
$service=新的Google\u服务\u Gmail($client);
$pageToken=NULL;
$messages=array();
$opt_param=数组(
“maxResults”=>20,
'q'=>'!in:chats'
);
做{
试一试{
如果($pageToken){
$opt_param['pageToken']=$pageToken;
}       
$messagesResponse=$service->users\u messages->listUsersMessages($userId,$opt\u param);
如果($messagesResponse->getMessages()){
$messages=array_merge($messages,$messagesResponse->getMessages());
$pageToken=$messagesResponse->getNextPageToken();
}
}捕获(例外$e){
打印“出现错误:”。$e->getMessage();
}
}而($pageToken);
foreach($messages作为$message){
打印“ID为的消息”。$Message->getId()。
; } 返回$messages; }

我仍然收到我所有的消息(除了挂断消息,这是唯一有效的过滤器)

Maxrows用于分页。如果结果返回1000行,并且将“最大行数”设置为100,则必须在下一个GetOken页面上翻页10次才能获得所有结果

将maxrows设置为20对您没有帮助,因为我相信minmaxrows大约是100(我相信这是大多数googleapi的默认设置)。除非您的请求生成的行少于100行,否则您永远不会得到少于100行的行


试试看@example.com“

挂断消息被存储为消息,如果我没有设置过滤器,我会得到它们,我只是说这是唯一对我有效的过滤器。我的问题是maxResult不起作用,我无法找到从“@example.com”这样的域中排除邮件的方法@你试过了吗?我仍然不明白max rows与此有什么关系,以及为什么你认为它不起作用。Maxrows只是请求返回的行数,这就是它的全部功能。Maxrows不起作用,因为它返回所有行。如果我说我得到了所有的信息,那么很明显maxrows没有工作@不要做任何事