2015-07-22 2 views
0

Я использую Parse 1.7.5 и Facebook SDK 20150708. Я запрашиваю разрешения для public_profile и электронной почты. Когда я нажимаю кнопку входа в систему, он переходит на веб-сайт Facebook для получения разрешения, после того, как он предоставлен, он возвращается на страницу входа в систему, а кнопка входа в систему Facebook показывает значок загрузки, а затем снова переходит на Facebook для получения разрешения, мне нужно нажмите кнопку ok во второй раз, чтобы завершить процесс входа в систему. Почему я должен предоставить разрешения дважды?Parse Facebook login pop up дважды

Вот мой код:

func logInViewController(logInController: PFLogInViewController, didLogInUser user: PFUser) { 

    var permissions = [ "public_profile", "email" ] 

    PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: { (user: PFUser?, error: NSError?) -> Void in 
     if let user = user { 
      if user.isNew { 
       println("User signed up and logged in through Facebook!") 
       self.loadUserData() 
       self.performSegueWithIdentifier("afterLogIn", sender: self) 
      } else { 
       println("User logged in through Facebook!") 
       self.performSegueWithIdentifier("afterLogIn", sender: self) 
      } 
     } else { 
      println("Uh oh. The user cancelled the Facebook login.") 
     } 
    }) 
    self.performSegueWithIdentifier("afterLogIn", sender: self) 

} 

ответ

1

Это потому, что вы реализуете свой код в «didloginuser» метод делегата. Думайте логично, этот метод будет вызываться сразу после входа пользователя в систему. Что в вашем случае происходит во второй раз, когда вы получаете страницу разрешений. Это означает, что вам нужно искать другой метод делегата и вставлять туда свой код. Я не уверен, какой именно, но проверьте что-то вроде «залогинится» и т. Д.

+0

Да, вы правы, мои плохие. – Zack

+0

Проголосуйте за мой ответ – IamMashed

+0

Выполнено, еще раз спасибо. – Zack