Bulk-fetching emails in the new Gmail API
Here is an example of batch request in Java where I get all the threads using threads ids. This can be easily adapted for your need.
BatchRequest b = service.batch();//callback function. (Can also define different callbacks for each request, as required)JsonBatchCallback<Thread> bc = new JsonBatchCallback<Thread>() { @Override public void onSuccess(Thread t, HttpHeaders responseHeaders) throws IOException { System.out.println(t.getMessages().get(0).getPayload().getBody().getData()); } @Override public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) throws IOException { }};// queuing requests on the batch requestsfor (Thread thread : threads) { service.users().threads().get("me", threads.getId()).queue(b, bc);}b.execute();
Here is the solution that worked for me:
batch = BatchHttpRequest()for msg_id in message_ids: batch.add(service.users().messages().get(userId='me', id=msg_id['id']), callback=mycallbackfunc)batch.execute()