2013-08-18 2 views
0

Google 캘린더에 .net 클라이언트 라이브러리를 사용하려고합니다. 캘린더 목록을 가져 와서 캘린더에서 일정 목록을 볼 수 있습니다. 그러나 캘린더 당 최대 250 개의 항목이 있습니다. 나머지는 어떻게 액세스합니까? 나는 Google에서 'pagetoken'을 알고 있습니다 .Apis.Calendar.v3.EventsResource.ListRequest, 아래의 코드 예에서 itemlistreq.PageToken은 250 개가 넘는 항목이있는 캘린더의 경우에도 null로 유지됩니다..net 클라이언트 라이브러리를 사용하여 250 개 이상의 캘린더 항목을 얻으려면 어떻게해야합니까?

var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization); 

var initializer = new BaseClientService.Initializer(); 
initializer.Authenticator = auth; 

var calsrv = new CalendarService(initializer); 

//Get list of calendars 
var list = calsrv.CalendarList.List().Execute().Items; 

//Get entry list for each calendar 
foreach(var cal in list) 
{ 
    var itemlistreq = calsrv.Events.List(cal.Id); 
    var itemlistex = itemlistreq.Execute(); 
    var itemlist = itemlistex.Items; 

    //Here, itemlistreq.PageToken == null, even if itemlist has 250 entries. 
} 

답변

1

요청시 MaxResult 속성을 변경하려고 했습니까? 예를 들어, 다음을 수행하십시오 :

var itemlistreq = calsrv.Events.List(cal.Id); 
itemlistreq.MaxResults = 10000; 
var itemlistex = itemlistreq.Execute(); 
var itemlist = itemlistex.Items; 

업데이트 :

var itemlistreq = calsrv.Events.List(cal.Id); 
var itemlistex = itemlistreq.Execute(); 
var token = itemlistex.NextPageToken; // THAT IS THE TOKEN YOU ARE LOOKING FOR 
var itemlist = itemlistex.Items; 

는 그런 다음 itemlistex에 설정할 수 있습니다 (귀하의 경우 itemlistex) 이벤트 클래스에서 NextPageToekn 속성을 가져보십시오. PageToken 속성을 사용하면 더 많은 이벤트를 얻을 수 있습니다.

+0

예, 벌써 왔어. MaxResults가 250보다 크면 결과의 양은 250입니다. 250보다 작은 경우 결과의 양은 실제로 MaxResults로 전달하는 양으로 제한됩니다. PageToken에 영향을 미치지 않습니다. 두 경우 모두 null입니다. – Legolas

+0

답변을 업데이트하고 itemlistex.NextPageToken 호출을 추가했습니다. 도움이되는지 알려주세요. – peleyal

0

MaxResult는 2500 개의 항목으로 제한되므로 10000은 작동하지 않습니다.

+0

확인을위한 링크를 제공해 주시겠습니까? –

+0

API를 찾을 수있는 곳은 [Google 개발자] (https://developers.google.com/google-apps/calendar/v3/reference/events/list)이며 관련 메소드는 maxResults이며 제한적으로 볼 수 있습니다 to 2500 – Orit

+0

그 이상을 받고 싶다면 페이지를 반복 할 수 있습니다. 어쨌든 그것을 처리하는 가장 좋은 방법입니다. – Orit