Google Calendar API로 모든 이벤트를 가져올 수 없는 경우 대처 방법

일어난 일


다음 코드를 사용하여 Google 달력에서 이벤트를 가져옵니다.
import 'package:googleapis/calendar/v3.dart' as v3;
...
final calId = '<カレンダーID>';
v3.CalendarApi(client).events.list(
      calId,
    );
단, 어느 시점 이후에 추가, 편집된 이벤트는 이 코드로 얻을 수 없습니다.
물론 API 제한(1천개의 쿼리/일)에 걸리는 것은 불가능하고, 취득한 사건도 10개 정도에 불과해 이유를 전혀 알 수 없다.
Google Calendar API Usage Limits | Google Developers

해결책


아래의 Stack Overflow에 따르면 maxResults=9999의 매개 변수를 지정하여 해결했다고 합니다.
Google calendar API do not return events list - Stack Overflow
이렇게 해보면 확실히 모든 활동을 얻을 수 있다.
import 'package:googleapis/calendar/v3.dart' as v3;
...
final calId = '<カレンダーID>';
v3.CalendarApi(client).events.list(
    calId,
    maxResults: 9999,
);
maxResults에 대해 공식 페이지에 이렇게 적혀 있습니다.
Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.

[邦訳] 1つの結果ページで返されるイベントの最大数。結果ページのイベント数がこの値よりも少ない場合もあれば、 クエリにマッチするイベントがより多くあったとしても全くない場合もあります。不完全なページは、レスポンスのnextPageTokenフィールドが空でない場合に検出されます。デフォルトでは、値は250イベントです。ページサイズは2500イベントより大きくなることはありません。省略可能です。
maxResults를 지정하기 전에
  • 캘린더의 모든 이벤트 50건
  • 접수된 이벤트 10건
    이런 느낌으로는 250개의 활동도 없을 것 같지만 일단 해결되면 다행이다.
  • 참고 문헌


    Events: list | Calendar API | Google Developers
    Google calendar API do not return events list - Stack Overflow

    좋은 웹페이지 즐겨찾기