GoogleCalendarのデータ読込の3ステップ

イベントデータ取得までの呼び出しメソッド

1.全カレンダー情報取得をリクエスト

GDataServiceGoogleCalendar *gDataSrviceCalendar;
// 初期化を行い、ユーザIDとパスワードをセット
gDataSrviceCalendar = [[GDataServiceGoogleCalendar alloc] init];
[gDataSrviceCalendar setUserCredentialsWithUsername:Username
                                           password:Password];

// 取得条件を設定
[gDataSrviceCalendar setServiceShouldFollowNextLinks:YES];
[gDataSrviceCalendar setShouldServiceFeedsIgnoreUnknowns:YES];

// 全カレンダー情報取得をリクエスト
GDataServiceTicket *ticket;
ticket = [gDataSrviceCalendar fetchFeedWithURL:feedURL
                                      delegate:self
                             didFinishSelector:@selector(ticket:finishedWithFeed:error:)];
// 取得処理が終了すると【ticket】メソッドが呼び出される

2.カレンダー情報リストから、それぞれのカレンダーに属するイベント情報取得をリクエスト

-(void)ticket:(GDataServiceTicket *) ticket
finishedWithFeed:(GDataFeedCalendar *)feed
    // 全カレンダー情報が「feed」変数にセットされて返される

    for (GDataEntryCalendar *calendar in [feed entries]){  // カレンダー情報を一つずつ取り出す
            // イベントを取得したいカレンダーのURL(alternateLink)を指定して、イベント情報取得クエリを作成
            GDataQueryCalendar *query = [GDataQueryCalendar calendarQueryWithFeedURL:calendarURL];

            // イベント情報取得クエリを指定してイベント情報取得リクエストを送る
            [gDataSrviceCalendar fetchFeedWithQuery:query 
                                           delegate:self 
                                  didFinishSelector:@selector(eventsTicket:finishedWithFeed:error:)];
            // 取得処理が終了するとカレンダー毎に【eventsTicket】メソッドが順次呼び出される
    }
}

3.イベント情報リストから、イベント情報を一つずつ取り出す

-(void) eventsTicket:(GDataServiceTicket *)ticket
    finishedWithFeed:(GDataFeedCalendar *)feed
               error:(NSError *) error {
    // イベント情報が「feed」変数にセットされて返される

    // カレンダー名を取得
    NSString *calendarTitle = [[feed title] stringValue];  // どのカレンダーのイベント情報か判断するために使う

    for (GDataEntryCalendarEvent *gDataEvent in [feed entries]) {  // イベント情報を一つずつ取り出す
        
        // Get Event Infos
        m_EventData = [[EventData alloc] init];
        
        GDataTextConstruct *titleTextConstruct = [gDataEvent title];
        NSString *title = [titleTextConstruct stringValue];

        // イベントの日時取得
        NSArray *times = [gDataEvent times];
        
        // *** イベントデータを取得する ***
    }
}

これらのプロジェクトファイル一式はここ。
yuriken27/GoogleCalendarAccessTest · GitHub