2016-11-27 11 views
1

は私が送信トレイからのみのメールを取得しよう:AndroidのGmailのAPIのGETの送信トレイのメール

  String user = "me"; 
     ListMessagesResponse response = mService.users().messages().list(user).execute(); 
     //set selected labels 
     //[CATEGORY_PERSONAL, CATEGORY_SOCIAL, Регистрации, CATEGORY_FORUMS, IMPORTANT, CATEGORY_UPDATES, CHAT, SENT, INBOX, TRASH, CATEGORY_PROMOTIONS, DRAFT, SPAM, STARRED, UNREAD] 
     List<String> labelIds = new ArrayList<>(); 
     labelIds.add("SENT"); 
     List<Message> messages = new ArrayList<Message>(); 
     while (response.getMessages() != null) { 
      messages.addAll(response.getMessages()); 
      if (response.getNextPageToken() != null) { 
       String pageToken = response.getNextPageToken(); 
       response = mService.users().messages().list(user).setLabelIds(labelIds).setPageToken(pageToken).execute(); 
      } else { 
       break; 
      } 
     } 

が、私はあまりにも

+0

あなたは 'としても最初の' ListMessagesResponse'にsetLabelIds'ていないのはなぜ? – Tholle

+1

ありがとう、@ Tホール、これは正解です。 –

答えて

0

私は最初の応答の行にフィルタを設定する必要が受信トレイのメッセージを取得します。 このコード作業:

String user = "me"; 
     //set selected labels 
     //[CATEGORY_PERSONAL, CATEGORY_SOCIAL, Регистрации, CATEGORY_FORUMS, IMPORTANT, CATEGORY_UPDATES, CHAT, SENT, INBOX, TRASH, CATEGORY_PROMOTIONS, DRAFT, SPAM, STARRED, UNREAD] 
     List<String> labelIds = new ArrayList<>(); 
     labelIds.add("SENT"); 
     ListMessagesResponse response = mService.users().messages().list(user).setLabelIds(labelIds).execute(); 

     List<Message> messages = new ArrayList<Message>(); 
     while (response.getMessages() != null) { 
      messages.addAll(response.getMessages()); 
      if (response.getNextPageToken() != null) { 
       String pageToken = response.getNextPageToken(); 
       response = mService.users().messages().list(user).setPageToken(pageToken).execute(); 
      } else { 
       break; 
      } 
     } 
関連する問題