繁体   English   中英

解析Facebook登录问题?

[英]Parse facebook login issue?

我正在尝试使用Psrse实现Facebook登录。 如果用户在其iOS设置中具有Facebook登录名,则以下代码有效,但如果没有,则无效。

一旦我调用logInWithPermissions Safari浏览器就会打开facebook,并且我的委托被nil用户调用,并且nil错误。 当用户登录safari时,它将带用户返回到应用程序,调用application:openURL:sourceApplication ,但永远不会触发logInWithPermissions的完成

花费了3天的时间来解决这个问题。 任何建议,将不胜感激。 我已经将所有键也添加到了info.plist中

这里有一个不能解决问题的重复项: iOS / Swift:PFFacebookUtils.logInWithPermissions返回nil用户并返回错误

let permissionArray = ["public_profile", "email"]

PFFacebookUtils.logInWithPermissions(permissionArray) { user, error in

     println(user)
     println(error)

}

代理

func applicationDidBecomeActive(application: UIApplication) {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    FBAppCall.handleDidBecomeActiveWithSession(PFFacebookUtils.session())
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String, annotation: AnyObject?) -> Bool {

    return FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication, withSession: PFFacebookUtils.session())
}

编辑:

将此添加到application:openUrl:sourceApplication中,所有值都存在,并且在登录后有效。

println(url)
println(sourceApplication)
println(PFFacebookUtils.session())

导致问题的代码是这样的。 会话尚不存在,因此在没有任何异常日志的情况下打开Safari浏览器时,调用close会导致崩溃。 然后回到该应用程序,它将从头开始启动该应用程序,但是由于它会返回到登录页面,因此很难说清。

在调用Clode之前,需要检查会话是否存在。

func applicationDidEnterBackground(application: UIApplication) {

    PFFacebookUtils.session().close()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM