2013-04-15 4 views
9

Ich mache eine App auf iOS6 Social Framework ... es funktionierte gut, aber jetzt nach ein paar Monaten bekam einen seltsamen Fehler.Facebook Access Token abgelaufen - iOS 6 Social Framework

Mein NSLog importierter JSON Facebook-Daten zu einem NSDictionary ist:

profiledictionary: { 
error = { 
code = 190; 
"error_subcode" = 463; 
message = "Error validating access token: Session has expired at unix time 1365610034. The current unix time is 1366032783."; 
type = OAuthException; 

scheint mein Zugriffstoken abgelaufen ist, ist aber nicht iOS6 sozialen Rahmen soll der sich darum kümmern automatisch?

Irgendwelche Ideen, wie kann ich es lösen und auch zukünftige Probleme vermeiden, so dass ich sicher eine echte App veröffentlichen kann?

Antwort

13

habe es endlich ... war notwendig, zu überprüfen, ob NSDictionary ein Objekt „Fehler“ genannt hatte (in diesem Fall Facebook Fehler über Token abgelaufen), und wenn ja eine Methode aufrufen ACAccount zu erneuern:

if([self.profileDictionary objectForKey:@"error"]!=nil) 
{ 
[self attemptRenewCredentials]; 
} 

-(void)attemptRenewCredentials{ 
    [self.accountStore renewCredentialsForAccount:(ACAccount *)self.facebookAccount completion:^(ACAccountCredentialRenewResult renewResult, NSError *error){ 
     if(!error) 
     { 
      switch (renewResult) { 
       case ACAccountCredentialRenewResultRenewed: 
        NSLog(@"Good to go"); 
        [self getFacebookAccount]; 
        break; 
       case ACAccountCredentialRenewResultRejected: 
        NSLog(@"User declined permission"); 
        break; 
       case ACAccountCredentialRenewResultFailed: 
        NSLog(@"non-user-initiated cancel, you may attempt to retry"); 
        break; 
       default: 
        break; 
      } 

     } 
     else{ 
      //handle error 
      NSLog(@"error from renew credentials%@",error); 
     } 
    }]; 
} 
+1

Ich habe Ihre Frage heute geupdated und beantwortet. Du hast meine Haut gerettet !!! Wo auf der Erde hast du das herausgefunden? Vielen Dank. – Douglas

+0

froh zu helfen;) –