2012-12-19 36 views

回答

-2

如果您在dev中測試代碼,那麼您第一次登錄時會將該會話存儲在Facebook上。

因此,您嘗試再次測試它,但它已被授權。

如果您想再次測試登錄過程,請轉至Facebook並取消您的應用授權(它將位於您的應用列表中)。

然後您可以再次登錄設備。

+2

抱歉,這不是回答我的問題。登錄過程正常工作。我只是不想在按下Facebook-Login按鈕後每次顯示「您已經授權YOUR_APP」屏幕。 –

+0

如果用戶已經登錄,那麼他們不應該按「登錄」按鈕。他們應該通過登錄過程直接應用程序的「肉」。如果他們看到Facebook按鈕,應該說「註銷」。 – Fogmeister

+3

我想你不明白我的問題是什麼:1.用戶第一次登錄facebook,接受權限。 2.用戶單擊註銷操作,令牌被清除。 3.用戶將登錄 - >在這裏他再次點擊Facebook按鈕,但現在不應出現「授權屏幕」。因爲他已經授權該應用程序。 –

1

請參閱此代碼,它可以幫助

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]; 

             } 
            }]; 
} 
相關問題