在Swift中使用Google Calendar API

时间:2017-04-18 14:15:01

标签: swift calendar google-calendar-api

我通过谷歌提供的iOS Quickstart Guide注意到它已经过时了很长时间。

所以我研究了一整天,以了解它现在应该如何工作,但我没有找到有关如何做的有效解决方案/说明。

我有一个带日历的iOS应用程序。用户可以决定应该使用哪个日历来同步应用和日历之间的日历事件。应支持Google日历和Apple日历。 Apple Calendar同步工作正常。对于Google日历,我还找不到任何解决方案。谷歌日历的用户应该可以将所有事件与我们的iOS应用程序同步(包括添加,删除和更改事件)。

是否有任何未过时的信息来源以及描述如何做到这一点?

1 个答案:

答案 0 :(得分:1)

Google在Github上有一个示例应用:https://github.com/google/google-api-objectivec-client-for-rest

如果你仔细阅读应用程序,有一个创建事件的Objective-C示例,它应该为你提供一个开始Swift的好地方:

- (void)addEvent:(GTLRCalendar_Event *)event {
  GTLRCalendarService *service = self.calendarService;
  GTLRCalendar_CalendarListEntry *selectedCalendar = [self selectedCalendarListEntry];
  NSString *calendarID = selectedCalendar.identifier;

  GTLRCalendarQuery_EventsInsert *query =
      [GTLRCalendarQuery_EventsInsert queryWithObject:event
                                           calendarId:calendarID];
  self.editEventTicket = [service executeQuery:query
                             completionHandler:^(GTLRServiceTicket *callbackTicket,
                                                 GTLRCalendar_Event *event,
                                                 NSError *callbackError) {
     // Callback
     self.editEventTicket = nil;
     if (callbackError == nil) {
       [self displayAlert:@"Event Added"
                   format:@"Added event \"%@\"",
        event.summary];
       [self fetchSelectedCalendar];
     } else {
       [self displayAlert:@"Add failed"
                   format:@"Event add failed: %@", callbackError];
     }
   }];
}

此外,您还可以使用EventKit,让用户按照自己的意愿同步他们的日历,如下所述:ios Add Event to google calendar