解析& Facebook登录logInInBackgroundWithReadPermissions块未执行

时间:2015-05-27 07:04:22

标签: ios swift parse-platform facebook-login

我用这种方法添加了facebook登录信息:

PFFacebookUtils.logInInBackgroundWithReadPermissions(permissionsArray, 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.");
        }
    })

但该块永远不会被执行。没有错误消息。 我按照Parse教程进行了所有这些步骤。 也许有人可以提供帮助?

2 个答案:

答案 0 :(得分:0)

我不认为您在AppDelegate中实现了以下内容。只需检查这些方法的定义如下:

-(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
         { 

              return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:[PFFacebookUtils session]]; 

          }


-(void)applicationDidBecomeActive:(UIApplication )application 
        { 

            [FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]]; 

        }

-(void)applicationWillTerminate:(UIApplication )application { 

         [[PFFacebookUtils session] close]; 
    }

对于Swift,请按照以下步骤操作: -

/ Import this header into your Swift bridge header file
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>

// AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    Parse.setApplicationId("parseAppId", clientKey:"parseClientKey")
    PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
    return true
}

在您的app delegate中,添加以下处理程序:

func applicationDidBecomeActive(application: UIApplication) {
    FBSDKAppEvents.activateApp()
}
func application(application: UIApplication,
    openURL url: NSURL,
    sourceApplication: String?,
    annotation: AnyObject?) -> Bool {
        return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}

从此链接获得: - here

答案 1 :(得分:0)

我设法解决了这个问题。我的Facebook应用程序是问题,我更改了应用程序包和所有内容,但它仍然指的是错误的iOS应用程序。所以我不得不创建一个新的。