我正在尝试从适用于 iOS 应用程序的 Google Calendar API 获取生日。现在我可以从 Google 日历中获取事件了。
- (void)fetchEvents {
GTLQueryCalendar *query = [GTLQueryCalendar queryForEventsListWithCalendarId"primary"];
query.maxResults = 10;
query.timeMin = [GTLDateTime dateTimeWithDate:[NSDate date]
timeZone:[NSTimeZone localTimeZone]];;
query.singleEvents = YES;
query.orderBy = kGTLCalendarOrderByStartTime;
[self.service executeQuery:query
delegate:self
didFinishSelectorselector(displayResultWithTicket:finishedWithObject:error];}
- (void)displayResultWithTicketGTLServiceTicket *)ticket
finishedWithObjectGTLCalendarEvents *)events
errorNSError *)error {
if (error == nil) {
NSMutableString *eventString = [[NSMutableString alloc] init];
if (events.items.count > 0) {
for (GTLCalendarEvent *event in events) {
GTLDateTime *start = event.start.dateTime ?: event.start.date;
NSString *startString =
[NSDateFormatter localizedStringFromDate:[start date]
dateStyle:NSDateFormatterShortStyle
timeStyle:NSDateFormatterShortStyle];
[eventString appendFormat"\n %@\n %@\n\n%@\n", event.summary, startString, event.descriptionProperty];
}
} else {
[eventString appendString"No upcoming events found."];
}
NSLog(@"eventString %@",eventString);
} else {
[self showAlert"Error" message:error.localizedDescription];
}
}
如何从适用于 iOS 的 Google Calendar API 获取生日。
我已经阅读了 Google Calendar API 的文档:
https://developers.google.com/google-apps/calendar/quickstart/ios
Best Answer-推荐答案 strong>
我以前做过这方面的工作,这就是我发现的。虽然默认情况下存在,但生日事件没有有效的“eventID”,看起来像 2016_BIRTHDAY_self(今年),所以当你使用 Events: list 获取它时,不返回任何内容。您必须先添加它:
在您的 Google 日历上:
- 点击默认birthday icon在您的日历中。
- 点击“复制到我的日历”。
- 这将打开事件 UI。您可以在说明中添加其他详细信息。然后保存。
现在,一个重复的生日事件已添加到您的日历中,但这次它有一个有效的 eventID。因此,当您使用 Events:list 调用另一个电话时,它会 returns the event .
如何在 iOS 中做到这一点?
URI 请求:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
您可以use NSURLConnection :
// Create the request.
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString"http://google.com"]];
// Create url connection and fire request
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
使用 People API 获得生日:
1.在 Google+ 中将您的生日设为公开 Basic Information通过勾选“显示出生年份”
利用 People API URI 请求:
获取 https://www.googleapis.com/plus/v1/people/userId
使用 Try-it现在用参数测试它:
userId -> me
fields -> birthday
Authorize and Execute.
关于ios - 适用于 iOS 的 Google Calendar API 返回BirthDays?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39132020/
|