繁体   English   中英

在Swift中使用Parse登录Facebook

[英]Facebook login with Parse in Swift

我正在尝试使用Parse创建一个Facebook登录。 请查看我的应用代表的代码:

    import UIKit

    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool  {
    //  verride point for customiztion after application launch.
        PFFacebookUtils.initializeFacebook()
    Parse.setApplicationId("REMOVED", clientKey:"REMOVED")

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


func applicationWillResignActive(application: UIApplication) {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

func applicationDidEnterBackground(application: UIApplication) {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

func applicationWillEnterForeground(application: UIApplication) {
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

func applicationDidBecomeActive(application: UIApplication) {
    FBAppCall.handleDidBecomeActiveWithSession(PFFacebookUtils.session())

    // 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.
}

func applicationWillTerminate(application: UIApplication) {

    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

 }

这是我的桥接头(我认为还可以):

    #import <Parse/Parse.h>
    #import "BMParseManager.h"
    #import <FacebookSDK/FacebookSDK.h>

    #import <ParseFacebookUtils/PFFacebookUtils.h>

我现在处于对视图控制器进行编码的阶段。

我在Objective-C上在线找到了这个示例,所以我猜是否可以将其转换为Swift,它将正常运行? 此页面的登录部分。)

PFFacebookUtils出现错误:“期望的声明”。 这是在我的视图控制器中:

    import UIKit

    class FBLoginViewController: UIViewController {    

PFFacebookUtils.logInWithPermissions(permissions, {
(user: PFUser!, error: NSError!) -> Void in
if user == nil {
NSLog("Uh oh. The user cancelled the Facebook login.")
} else if user.isNew {
NSLog("User signed up and logged in through Facebook!")
} else {
NSLog("User logged in through Facebook!")
}
})

桥接头中的导入是否不够? 如何获取视图控制器以识别将其导入到桥接头文件中的方法-或者我应该在其他地方做些什么?

似乎您需要先定义权限。

var permissions = ["public_profile"]


   PFFacebookUtils.logInWithPermissions(permissions, {
        (user: PFUser!, error: NSError!) -> Void in
        if user == nil {
            NSLog("Uh oh. The user cancelled the Facebook login.")

如果正确导入了标题,则在调用parse / facebook函数时,Xcode中不会显示任何错误。

之所以会出现错误,是因为编译器需要一个声明,即变量声明或方法声明。

看起来您直接在类内部具有PFFacebookUtils.loginWithPermission(...)代码。 您需要将其放入方法中。 例如:

import UIKit

class FBLoginViewController: UIViewController {

    func login() {
        //
        PFFacebookUtils.logInWithPermissions(permissions, {
            //
        }
    }
})

暂无
暂无

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

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