-(void)getGoogleCalendar{
GTLServiceCalendar *calendarService = self.calendarService;
GTLQueryCalendar *calendarListQuery = [GTLQueryCalendar queryForCalendarListList];
[calendarService executeQuery:calendarListQuery completionHandler:^(GTLServiceTicket *ticket, GTLCalendarCalendarList * object, NSError *error) {
for (GTLCalendarCalendarListEntry *calendar in object.items) {
[self getEventsForTheGivenCalendar:calendar.identifier];
}
}];
}
在登录后的第一次它完美但但是当应用程序启动之后它会给出错误
错误Domain = com.google.GTLJSONRPCErrorDomain Code = 401“操作 无法完成。 (需要登录)“UserInfo = 0x79eb4f90 {error =需要登录,GTLStructuredError = GTLErrorObject 0x79fa9270: {message:“需要登录”代码:401数据:[1]}, NSLocalizedFailureReason =(需要登录)}
我正在使用GTMOAuth2Authentication
身份验证进行登录并存储用户详细信息。如果用户详细信息不是nil,则不会要求登录,然后在获取日历时发生错误。
每次应用运行时如何获取GTLCalendar?
答案 0 :(得分:1)
您应该设置服务授权程序以便能够进行查询。
calendarService.authorizer = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:KEYCHAINITEMNAME
clientID:CLIENTID
clientSecret:CLIENTSECRET];