2017-03-28 6 views
0

私は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; 
} 

イムはまだ

+0

ハングアウトのメッセージは、それらを取得し、メッセージとイムとして保存されてみてください、イムはちょうどそれが唯一のフィルタが私のために働いていると言っています。私の問題は、maxResultが動作していないと私は "@ example.com"のようなドメインからメッセージを除外する方法を見つけることができません – MidouCloud

+0

'[email protected]'あなたは試しましたか?私はまだ最大行がそれと関係があり、あなたはなぜそれが働いているとは思わないのか理解していません。 Maxrowsは、要求が返す行の数だけで、すべての行です。 – DaImTo

+0

すべての行を戻すため、maxrowsは機能しません。もし私が言ったのは、すべてのメッセージは、maxrowsが動作していないことが明らかです。 '[email protected]'は何もしません – MidouCloud

答えて

0

MAXROWSはページングのために使用されている(ハングアウトメッセージを除いて、これが動作のみフィルタである)すべての私のメッセージを取得します。結果が1000行を返し、最大行を100に設定すると、結果をすべて取得するためにnextpagetokenを10回ページする必要があります。

maxrowsを20に設定すると、min maxrowsが100(私はこれがほとんどのGoogle APIのデフォルトであると思われます)のようなものだと思います。あなたの要求によって生成された行が100より少ない場合を除き、決して100行未満になることはありません。

は、私は、フィルタを入れていけない場合'q'=>'[email protected]'

関連する問題