gpt4 book ai didi

java - 获取来自 Gmail 的最后 20 封电子邮件(Java Android)

转载 作者:行者123 更新时间:2023-12-01 09:46:03 25 4
gpt4 key购买 nike

如何从 Gmail 获取最近 20 封电子邮件?

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

目前我正在使用它,但它返回没有任何负载的消息 ID。我想收到带有正文的完整电子邮件。可以像从特定发件人那里获取最新的电子邮件吗?

最佳答案

正如 @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();

希望这有帮助。

关于java - 获取来自 Gmail 的最后 20 封电子邮件(Java Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38027157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com