2

我正在使用 facebook login 测试一个应用程序。我做了一个按钮,当我点击它时,Facebook页面出现,密码消失后。问题是来自 [PFFacebookUtils loginWithPermissions] 的块永远不会被调用。这样我就无法执行我的转场。

我想我拥有 Parse 和 Facebook 上的所有配置。所有类都在 PrefixHeader 中导入

Appdelegate 方法已使用 developer.facebook.com 文档中的信息进行了更新。

前缀标头 前缀标头

应用委托 应用委托

我的根视图控制器类 应用委托

4

2 回答 2

7

很多小时后,我想通了!

我不知道为什么,但我需要将 AppDelegate 代码更改为

 - (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
        sourceApplication:(NSString *)sourceApplication
        annotation:(id)annotation {
        // attempt to extract a token from the url
     return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:[PFFacebookUtils session]];

}

而不是现在调用该块,因为我添加了 "withSession:[PFFacebookUtils session]" 。

我不知道为什么我必须这样做,因为在 Facebook 指南中没有写。如果有人可以向我解释,我将不胜感激。

于 2014-12-31T02:46:00.683 回答
2

对于那些坚持使用 Swift 1.x 的人,这解决了我的问题……当前的 parse-ios-fb 指南说要使用

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
    println("open URL appdelgate callback")
    return FBSDKApplicationDelegate.sharedInstance().application(application,
        openURL: url,
        sourceApplication: sourceApplication,
        annotation: annotation)
}

但做

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
    return FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication, withSession:PFFacebookUtils.session())
}

作品。Swift 1.2、Parse/ParseFacebookUtils 1.8.5、Facebook 4.3

于 2015-10-08T02:05:09.577 回答