2016-06-25 2 views
0

Gmailから最後の20件のメールを受信するにはどうすればよいですか?Gmail(Java Android)から最後の20件のメールを取得

ListMessagesResponse listMessagesResponse = mService.users().messages() 
        .list(user).setQ("from:----") 
        .execute(); 

現在、私はこれを使用していますが、ペイロードのないメッセージIDを返します。私は身体と完全な電子メールを取得したい。特定の送信者からの最新のメールを受信するようなことができますか?

答えて

1

@trajchevskaは、あなただけのコードで基本的な詳細情報を取得することができます指摘したように。メッセージをフルフォーマットで取得するには、すべてのメッセージに対してmService.users().messages().get(user, messageId).execute()と電話する必要があります。このための最良の方法は、バッチコールを作成することです。したがって、指定されたクエリに一致するすべてのメッセージを取得する場合は、このようなことを行う必要があります。

final ListMessagesResponse response = mService.users().messages().list(user).setQ("from:----").execute(); 
final List<Message> messages = new ArrayList<Message>(); 
while (response.getMessages() != null) { 
    messages.addAll(response.getMessages()); 
    if (response.getNextPageToken() != null) { 
     String pageToken = response.getNextPageToken(); 
     response = service.users().messages().list(user).setQ("from:----").setPageToken(pageToken).execute(); 
    } else { 
     break; 
    } 
} 

final List<Message> fullMessages = new ArrayList<>(); 
final JsonBatchCallback<Message> callback = new JsonBatchCallback<Message>() { 
    public void onSuccess(Message message, HttpHeaders responseHeaders) { 
     fullMessages.add(message); 
    } 

    public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) { 
     // do what you want if error occurs 
    } 
}; 
BatchRequest batch = mService.batch(); 
for (Message message : messages) { 
    mService.users().messages().get(user, message.getId()).setFormat("full").queue(batch, callback); 
} 

batch.execute(); 

これが役に立ちます。

0

リスト関数は、基本的な詳細(通常はidのみ)のメッセージのリストを返します。ペイロードやその他のメッセージの詳細を取得したい場合は、listで引っ張られたすべてのメッセージを繰り返し処理し、選択したオブジェクトに対してwant関数を呼び出す必要があります。私はJavaでいくつかの基本的な知識を持っていますが、ロジックはこのようなものになるだろう:

messages = listMessagesResponse.getMessages(); 
for (Message message : messages) { 
    payload = message.getPayload(); 
    ... 
} 

が自分のドキュメントをチェックし、それらを参考にすることができ、いくつかの例があります。

List Messages

Get Concrete Message

関連する問題