Google 日历 API iOS return 生日?
Google Calendar API for iOS return BirthDays?
我正在尝试从 Google 日历 API 获取 iOS 应用程序的生日。现在我可以从 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
didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];}
- (void)displayResultWithTicket:(GTLServiceTicket *)ticket
finishedWithObject:(GTLCalendarEvents *)events
error:(NSError *)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];
}
}
如何从 Google 日历 API 中获取 iOS 的生日。
我已经阅读了 Google 日历 API 的文档:
https://developers.google.com/google-apps/calendar/quickstart/ios
我以前研究过这个,这是我发现的。虽然默认情况下存在,但生日事件没有有效的 'eventIDs',看起来像 2016_BIRTHDAY_self(对于今年),因此当您使用 Events: list 获取它时,不会返回任何内容。您必须先添加它:
在您的 Google 日历上:
- 单击日历中的默认 birthday icon。
- 点击'Copy to my calendar'。
- 这将打开事件 UI。您可以在说明中添加其他详细信息。然后保存。
现在,重复的生日活动已添加到您的日历中,但这次它具有有效的 eventID。因此,当您使用 Events:list 拨打另一个电话时,它会 returns the event.
如何在 iOS 中执行此操作?
URI 请求:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
// 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];
使用人物获取生日 API:
1.Set 您在 Google+ Basic Information 中 public 的生日,方法是勾选 'show year of birth'
利用 People API URI 请求:
使用 Try-it 现在使用参数进行测试:
userId -> me
fields -> birthday
Authorize and Execute.
有可能从google日历获取所有生日而不复制到您的日历
从 google 获取 生日日历 id。
- 打开google日历
- 点击生日日历设置
- 您将从日历地址
获得日历ID
使用该日历 ID 获取事件
You can also get Calendar id through Google API
https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list
对于iOS检查下面的代码
let query = GTLRCalendarQuery_EventsList.queryWithCalendarId("calendar id")
service.executeQuery(
query,
delegate: self,
didFinishSelector: #selector(displayResultWithTicket(_: finishedWithObject:error:)))
委托方法
func displayResultWithTicket(
ticket: GTLRServiceTicket,
finishedWithObject response : GTLRCalendar_Events,
error : NSError?) {
}
对我有用
谢谢。
我正在尝试从 Google 日历 API 获取 iOS 应用程序的生日。现在我可以从 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
didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];}
- (void)displayResultWithTicket:(GTLServiceTicket *)ticket
finishedWithObject:(GTLCalendarEvents *)events
error:(NSError *)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];
}
}
如何从 Google 日历 API 中获取 iOS 的生日。 我已经阅读了 Google 日历 API 的文档: https://developers.google.com/google-apps/calendar/quickstart/ios
我以前研究过这个,这是我发现的。虽然默认情况下存在,但生日事件没有有效的 'eventIDs',看起来像 2016_BIRTHDAY_self(对于今年),因此当您使用 Events: list 获取它时,不会返回任何内容。您必须先添加它:
在您的 Google 日历上:
- 单击日历中的默认 birthday icon。
- 点击'Copy to my calendar'。
- 这将打开事件 UI。您可以在说明中添加其他详细信息。然后保存。
现在,重复的生日活动已添加到您的日历中,但这次它具有有效的 eventID。因此,当您使用 Events:list 拨打另一个电话时,它会 returns the event.
如何在 iOS 中执行此操作?
URI 请求:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
// 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];
使用人物获取生日 API:
1.Set 您在 Google+ Basic Information 中 public 的生日,方法是勾选 'show year of birth'
利用 People API URI 请求:
使用 Try-it 现在使用参数进行测试:
userId -> me
fields -> birthday
Authorize and Execute.
有可能从google日历获取所有生日而不复制到您的日历
从 google 获取 生日日历 id。
- 打开google日历
- 点击生日日历设置
- 您将从日历地址 获得日历ID
使用该日历 ID 获取事件
You can also get Calendar id through Google API https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list
对于iOS检查下面的代码
let query = GTLRCalendarQuery_EventsList.queryWithCalendarId("calendar id") service.executeQuery( query, delegate: self, didFinishSelector: #selector(displayResultWithTicket(_: finishedWithObject:error:)))
委托方法
func displayResultWithTicket( ticket: GTLRServiceTicket, finishedWithObject response : GTLRCalendar_Events, error : NSError?) { }
对我有用
谢谢。