2012-12-19 8 views
11

Obecnie próbuję zaimplementować Facebook-Login-Flow za pomocą iOS Facebook SDK 3.1. Ale jest mały problem z tym. Za każdym razem, gdy użytkownik loguje się z Facebook WebView otworzy się i mówiFacebook iOS SDK 3.1 | "Masz już autoryzowaną operację YOUR_APP" pojawia się za każdym razem, gdy użytkownik próbuje się zalogować

„Już upoważniony YOUR_APP ..”

kod I napisał opartą na poniższym przykładzie: click here Teraz My Pytanie brzmi: jak mogę uniknąć tego zachowania i tego, co robię źle?

Odpowiedz

-2

Jeśli testujesz kod w dev, to przy pierwszym logowaniu będzie on zapisywał tę sesję na Facebooku.

Próbujesz przetestować go ponownie, ale jest już autoryzowany.

Aby ponownie przetestować proces logowania, przejdź do serwisu Facebook i cofnij autoryzację aplikacji (pojawi się ona na liście aplikacji).

Następnie możesz zalogować się ponownie na urządzeniu.

+2

Niestety, ale to nie jest odpowiedź na moje pytanie. Proces logowania działa dobrze. Po prostu nie chcę pokazywać ekranu "już masz autoryzację YOUR_APP" za każdym razem po naciśnięciu przycisku Facebook-Login. –

+0

Jeśli użytkownik jest już zalogowany, nie powinien naciskać przycisku "zaloguj się". Powinny przejść przez proces logowania prosto do "mięsa" aplikacji. Jeśli zobaczą przycisk Facebooka, powinien powiedzieć "Wyloguj". – Fogmeister

+3

Myślę, że nie rozumiesz, jaki jest mój problem: 1. Użytkownik loguje się po raz pierwszy za pomocą Facebooka, akceptuje uprawnienia. 2. Użytkownik klika akcję wylogowania, token zostaje skasowany. 3. Użytkownik zaloguje się -> tutaj ponownie klika przycisk na facebooku, ale teraz "ekran autoryzacji" nie powinien się pojawić. Ponieważ już autoryzował aplikację. –

1

Proszę zobaczyć ten kod, to może pomóc

postParams= 
    [@{ 
     @"link" :link, 
     @"picture" :picture link , //[NSString stringWithFormat:@"%@%@",KBaseImageUrl,@"/assets/img/logo-small.jpg"], 
     @"name" : @“name”, 
     @"caption" : caption title, 
     @"description" :discription 
     } mutableCopy]; 
    title=[[arrayEventInfo valueForKey:@"info"] valueForKey:@"eventname"]; 


if ([[FBSession activeSession]isOpen]) 
{ 

    if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound) 
    { 

     [[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_action"] defaultAudience:FBSessionDefaultAudienceFriends 
               completionHandler:^(FBSession *session,NSError *error){ 

                 // If permissions granted, publish the story 
                 [FBRequestConnection 
                 startWithGraphPath:@"me/feed" 
                 parameters:postParams 
                 HTTPMethod:@"POST" 
                 completionHandler:^(FBRequestConnection *connection, 
                      id result, 
                      NSError *error) 
                 { 
                  NSString *alertText; 
                  if (error) 
                  { 
                   alertText = [NSString stringWithFormat: 
                      @"error: domain = %@, code = %d", 
                      error.domain, error.code]; 
                  } 
                  else 
                  { 
                   alertText = @"Posted successfully on your wall.";//[NSString stringWithFormat: 
                   //@"Posted action, id: %@", 
                   // result[@"id"]]; 
                  } 
                  //Show the result in an alert 
                  [[[UIAlertView alloc] initWithTitle:title 
                         message:alertText 
                         delegate:self 
                      cancelButtonTitle:@"OK" otherButtonTitles:nil]show]; 
                  [FBSession.activeSession closeAndClearTokenInformation]; 
                  [FBSession.activeSession close]; 


                 }]; 

                 UIActivityIndicatorView *activityView=(UIActivityIndicatorView*)[self.view viewWithTag:111]; 
                 if(activityView) 
                 { 
                  [activityView removeFromSuperview]; 
                 } 
                 [self.view setUserInteractionEnabled:YES]; 
                 [self.navigationController.navigationBar setUserInteractionEnabled:YES]; 




               }]; 

    }else 
    { 

      // If permissions granted, publish the story 
      [FBRequestConnection 
      startWithGraphPath:@"me/feed" 
      parameters:postParams 
      HTTPMethod:@"POST" 
      completionHandler:^(FBRequestConnection *connection, 
           id result, 
           NSError *error) 
      { 
       NSString *alertText; 
       if (error) 
       { 
        alertText = [NSString stringWithFormat: 
            @"error: domain = %@, code = %d", 
            error.domain, error.code]; 
       } 
       else 
       { 
        alertText = @"Posted successfully on your wall.";//[NSString stringWithFormat: 
        //@"Posted action, id: %@", 
        // result[@"id"]]; 
       } 
       //Show the result in an alert 
       [[[UIAlertView alloc] initWithTitle:title 
              message:alertText 
              delegate:self 
            cancelButtonTitle:@"OK" otherButtonTitles:nil]show]; 
       [FBSession.activeSession closeAndClearTokenInformation]; 
       [FBSession.activeSession close]; 


      }]; 


    } 
} 
else 
{ 


    [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
             defaultAudience:FBSessionDefaultAudienceOnlyMe 
              allowLoginUI:YES 
            completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
             if (!error && status == FBSessionStateOpen) { 
              if (!error) 
              { 
               // If permissions granted, publish the story 
               [FBRequestConnection 
                startWithGraphPath:@"me/feed" 
                parameters:postParams 
                HTTPMethod:@"POST" 
                completionHandler:^(FBRequestConnection *connection, 
                     id result, 
                     NSError *error) 
                { 
                 NSString *alertText; 
                 if (error) 
                 { 
                  alertText = [NSString stringWithFormat: 
                     @"error: domain = %@, code = %d", 
                     error.domain, error.code]; 
                 } 
                 else 
                 { 
                  alertText = @"Posted successfully on your wall.";//[NSString stringWithFormat: 
                  //@"Posted action, id: %@", 
                  // result[@"id"]]; 
                 } 
                 //Show the result in an alert 
                 [[[UIAlertView alloc] initWithTitle:title 
                        message:alertText 
                       delegate:self 
                     cancelButtonTitle:@"OK" otherButtonTitles:nil]show]; 
                 [FBSession.activeSession closeAndClearTokenInformation]; 
                 [FBSession.activeSession close]; 


                }]; 

              } 
             }else{ 
              NSLog(@"%@",[error description]); 
              UIActivityIndicatorView *activityView=(UIActivityIndicatorView*)[self.view viewWithTag:111]; 
              if(activityView) 
              { 
               [activityView removeFromSuperview]; 
              } 
              [self.view setUserInteractionEnabled:YES]; 
              [self.navigationController.navigationBar setUserInteractionEnabled:YES]; 

             } 
            }]; 
} 
Powiązane problemy