UsersResource.MessagesResource.ListRequest returns 只有 100 条消息
UsersResource.MessagesResource.ListRequest returns only 100 messages
Google.Apis.Gmail.v1.UsersResource.MessagesResource.ListRequest有一个属性,MaxResults也就是"Maximum number of messages to return"。默认值为 100。以下代码允许我更改 MaxResults:
var request = new UsersResource.MessagesResource.ListRequest(service, "me");
request.MaxResults = 5;
IList<Message> messages = request.Execute().Messages;
如果我指定的值 < 100,则只返回该数量的消息。但是,如果我指定一个大于 100 的数字,则只返回 100。我怎样才能返回所有消息?
如果您为 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
,您将获取所有结果。
Google.Apis.Gmail.v1.UsersResource.MessagesResource.ListRequest有一个属性,MaxResults也就是"Maximum number of messages to return"。默认值为 100。以下代码允许我更改 MaxResults:
var request = new UsersResource.MessagesResource.ListRequest(service, "me");
request.MaxResults = 5;
IList<Message> messages = request.Execute().Messages;
如果我指定的值 < 100,则只返回该数量的消息。但是,如果我指定一个大于 100 的数字,则只返回 100。我怎样才能返回所有消息?
如果您为 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
,您将获取所有结果。