How to use Authentication again after it was granted prevously

242 views Asked by At
-(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];
    }        
    }];
}

For the First Time after the Login it works perfect but when app starts after that it gives error

Error Domain=com.google.GTLJSONRPCErrorDomain Code=401 "The operation couldn’t be completed. (Login Required)" UserInfo=0x79eb4f90 {error=Login Required, GTLStructuredError=GTLErrorObject 0x79fa9270: {message:"Login Required" code:401 data:[1]}, NSLocalizedFailureReason=(Login Required)}

I am using GTMOAuth2Authentication authentication for the login and storing the user details. If the user details are not nil it doesn't ask for login and then the error occurs while fetching the calendar.

How to fetch GTLCalendar every time the app runs?

1

There are 1 answers

0
manuvendev On

You should set the service authorizer in order to be able to make queries.

calendarService.authorizer = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:KEYCHAINITEMNAME
                                                                           clientID:CLIENTID
                                                                       clientSecret:CLIENTSECRET];