2015-10-08 78 views
2

Google.Apis.Gmail.v1.UsersResource.MessagesResource.ListRequest有一個屬性MaxResults,它是「返回消息的最大數量」。默認值是100。下面的代碼可以讓我改變的maxResults:UsersResource.MessagesResource.ListRequest僅返回100條消息

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

如果我指定的值< 100,只返回的消息,這個數字。但是,如果我指定數字> 100,則只返回100。我怎樣才能返回所有消息?

+0

只是猜測 - 你必須通過多個請求來遍歷結果; 'maxresults'每頁。 –

回答

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,你將有獲取每個結果。

+1

美麗!感謝您花時間幫忙。並欣賞鏈接到API瀏覽器列表消息。 – Ben

+0

@Ben沒問題:)很高興能幫到你! – Tholle