2015-06-11 2 views
2

Я новичок в разработке iPhone, я хочу сделать логин facebook с моего собственного простого приложения iOS, используя последнюю версию facebook sdk 4. Я просто хочу открыть диалоговое окно входа в facebook из Пользовательские UIButton щелчок, в моих программах, и для этого я сделать ниже код в моем кнопка мыши метод ..FBSDKLoginManager не открывается логин входа в родные приложения iOS

- (IBAction)didTapLoginFaceBook:(id)sender { 

    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
    [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
     if (error) { 
      // Process error 

     NSLog(@"Unexpected login error: %@", error); 
     NSString *alertMessage = error.userInfo[FBSDKErrorLocalizedDescriptionKey] ?: @"There was a problem logging in. Please try again later."; 
     NSString *alertTitle = error.userInfo[FBSDKErrorLocalizedTitleKey] ?: @"Oops"; 
     [[[UIAlertView alloc] initWithTitle:alertTitle 
             message:alertMessage 
             delegate:nil 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil] show]; 


     } else if (result.isCancelled) { 
      // Handle cancellations 
     } else { 
      // If you ask for multiple permissions at once, you 
      // should check if specific permissions missing 
      if ([result.grantedPermissions containsObject:@"email"]) { 
       // Do work 
      } 
     } 
    }]; 


} 

Этот код работа что-то другое, но я хочу, чтобы открыть диалоговое окно Войти форма пользовательского UIButton нажмите на родной iOS.

Так, пожалуйста, предложите правильный путь с некоторым кодом, заранее спасибо

ответ

2

Facebook Войти 4.x с пользовательской кнопки в Objective-C

- (IBAction)btnFacebookPressed:(id)sender { 
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
    login.loginBehavior = FBSDKLoginBehaviorBrowser; 
    [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) 
    { 
     if (error) 
     { 
      // Process error 
     } 
     else if (result.isCancelled) 
     { 
      // Handle cancellations 
     } 
     else 
     { 
      if ([result.grantedPermissions containsObject:@"email"]) 
      { 
       NSLog(@"result is:%@",result); 
       [self fetchUserInfo]; 
       [login logOut]; 
      } 
     } 
    }]; 
} 

- (void)fetchUserInfo { 
    if ([FBSDKAccessToken currentAccessToken]) 
    { 
     NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]); 

     [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location , friends ,hometown , friendlists"}] 
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
      if (!error) 
      { 
       NSLog(@"resultis:%@",result); 

      } 
      else 
      { 
       NSLog(@"Error %@",error); 
      } 
     }]; 
    } 
} 

Facebook Вход с 4.x пользовательская кнопка в Swift

@IBAction func btnFacebookPressed(_ sender: Any) { 

    let loginManager = FBSDKLoginManager() 
    loginManager.loginBehavior = FBSDKLoginBehavior.browser; 

    loginManager.logIn(withReadPermissions: ["email"], from: self, handler: {(result : FBSDKLoginManagerLoginResult?, error : Error?) -> Void in 
     if error != nil { 
      // Process error 
     } 
     else if (result?.isCancelled)! { 
      // Handle cancellations 
     } 
     else if (result?.grantedPermissions.contains("email"))! { 
      print("result is: \(result)"); 
      self.fetchUserInfo() 
      loginManager.logOut() 
     } 
    }) 
} 


func fetchUserInfo() { 
    if let accessToken = FBSDKAccessToken.current()?.tokenString { 
     print("Token is available : \(accessToken)") 

     FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location , friends ,hometown , friendlists"]).start(completionHandler: { (connection : FBSDKGraphRequestConnection?, result : Any?, error : Error?) in 

      if let error = error { 
       print("Error \(error)") 
      } 
      else if let result = result { 
       print("result:\(result)") 
      } 
     }) 
    } 
} 
+0

и как выйти из системы текущего пользователя? когда я снова нажал кнопку входа в систему, тогда он сразу перейдет к «вам уже разрешенным демонстрационным приложениям». –

+0

'[yourfbloginmanager logOut];' @Hirenkanetiya –

+0

Я использую другую кнопку для выхода из системы, –

Смежные вопросы