UsersResource.MessagesResource.ListRequest仅返回100条消息

时间:2015-10-08 21:33:01

标签: gmail-api

Google.Apis.Gmail.v1.UsersResource.MessagesResource.ListRequest有一个属性MaxResults,它是"要返回的最大消息数"。默认值为100.以下代码允许我更改MaxResults:

var request = new UsersResource.MessagesResource.ListRequest(service, "me");
request.MaxResults = 5;
IList<Message> messages = request.Execute().Messages;

如果我指定一个值&lt; 100,仅返回该数量的消息。但是,如果我指定一个数字&gt; 100只返回100。如何返回所有消息?

1 个答案:

答案 0 :(得分:1)

如果您尝试使用listing messages的API资源管理器,您可以看到,如果您获得100个或更多结果,Google会为您分页,这样您就不会意外地获取数千个结果。要获取下一页,只需在下一个请求中包含您从第一个回复中获得的nextPageToken

请求:

GET https://www.googleapis.com/gmail/v1/users/me/messages

回应(第1页):

{
 "messages": [
    {
     "id": "15049b2405be054a",
     "threadId": "15049b2405be054a"
    }, . . .
  ],
 "nextPageToken": "07838313978415221418"
}

下一个请求:

GET https://www.googleapis.com/gmail/v1/users/me/messages?pageToken=07838313978415221418

回应(第2页):

{
 "messages": [
    {
     "id": "14ffa7f009d50dd1",
     "threadId": "14ffa7f009d50dd1"
    }, ...
  ], ...
}

继续执行此操作,直到响应中没有nextPageToken,并且您将获取每个结果。