gpt4 book ai didi

java - 无法在 JAVA 中使用 GMAIL api 获取前 10 条消息?

转载 作者:行者123 更新时间:2023-12-02 09:19:03 24 4
gpt4 key购买 nike

我尝试使用 .setMaxResults() 将结果限制为 10,但它会获取所有结果。

public static List<Message> listMessagesWithLabels(Gmail service, String userId, 
List<String> labelIds) throws MessagingException, IOException{

ListMessagesResponse response = service.users()
.messages()
.list(userId)
.setLabelIds(labelIds)
.setMaxResults(Long.valueOf(10))
.execute();

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(userId)
.setLabelIds(labelIds)
.setPageToken(pageToken)
.execute();
} else {
break;
}
}

for (Message message : messages) {
System.out.println(message.getThreadId());
}

return messages;
}


最佳答案

我从未使用过 Gmail API,但通常限制结果意味着限制每页的结果数量。但您正在主动获取所有页面。只需将 while 循环替换为

if (response.getMessages() != null) {
messages.addAll(response.getMessages());
}

你应该没问题。

关于java - 无法在 JAVA 中使用 GMAIL api 获取前 10 条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813534/

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