Parse Facebook登录显示总是Facebook页面"您已经授权此应用程序"

时间:2015-04-08 16:01:58

标签: facebook authentication login parse-platform

在我的应用中,我可以通过Facebook登录Parse。但是,在第一次登录后,进一步登录总是会显示一个Facebook页面,上面写着" 您已经授权此应用程序“,我必须按OK。这没用,也很烦人 根据网上的信息,这种情况现在已经发生了两年多,并且已经提出了许多这样的问题,但没有给出任何解决方案。

Facebook页面的打开显然是通过声明

完成的
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {…  

现在,Facebook https://developers.facebook.com/docs/facebook-login/ios/v2.3说:

检查现有代币
添加按钮后,应更新视图控制器以检查加载时是否存在现有令牌。如果某人已经为您的应用授予了权限,则可以消除不必要的应用切换到Facebook:

- (void)viewDidLoad
{
  [super viewDidLoad];
  if ([FBSDKAccessToken currentAccessToken]) {
   // User is logged in, do work such as go to next view controller. 
  }
}  

但是这种检查显然没有在PFFacebookUtils方法中完成 那么,这是一个Parse问题(为什么它在过去的两年里没有得到解决?),还是有办法避免这个烦人的往返Facebook页面?
任何帮助都是适当的。

1 个答案:

答案 0 :(得分:2)

这是适合我的解决方案。如果用户注销然后再次登录,它仍会进入Facebook页面...

if let accessToken: FBSDKAccessToken = FBSDKAccessToken.currentAccessToken() {
    PFFacebookUtils.logInInBackgroundWithAccessToken(accessToken, block: {
        (user: PFUser?, error: NSError?) -> Void in
        if user != nil {
            println("User logged in through Facebook!")
        } else {
            println("Uh oh. There was an error logging in.")
        }
    })
} else {
    let 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!")
            } else {
                println("User logged in through Facebook!")                       
            }
        } else {
            println("Uh oh. The user cancelled the Facebook login.")
        }
    })
}