iOS Swift和Facebook SDK

约瑟夫

首先让我道歉,只是学习敏捷,所以我不是100%在做我的事情。我发现了许多关于快速集成Facebook登录的教程,并且在该应用程序中似乎可以正常运行,但是似乎从未有人打电话给我的代表。我希望发生的事情是,当用户登录2时应该发生。

1)Facebook的登录按钮应更改为注销按钮。
2)控制台命令应打印我登录的信息,并最终显示用户信息。

ViewController类是

class ViewController: UIViewController,FBLoginViewDelegate {

    @IBOutlet var fbLoginView : FBLoginView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.fbLoginView.delegate = self
        self.fbLoginView.readPermissions = ["public_profile", "email", "user_friends"]
    }

    // Facebook Delegate Methods

    func loginViewShowingLoggedInUser(loginView : FBLoginView!) {
        println("User Logged In")
        println("This is where you perform a segue.")
    }

    func loginViewFetchedUserInfo(loginView : FBLoginView!, user: FBGraphUser){
        println("User Name: \(user.name)")
    }

    func loginViewShowingLoggedOutUser(loginView : FBLoginView!) {
        println("User Logged Out")
    }

    func loginView(loginView : FBLoginView!, handleError:NSError) {
        println("Error: \(handleError.localizedDescription)")
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

AppDelegate部分是:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    FBLoginView.self
    FBProfilePictureView.self

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

        var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication)
        return wasHandled

    }

    return true
}

如您所见,大多数内容直接来自于教程,但无法正常工作。我已经配置好了info.plist,并且出现了FBLoginView并通过了整个身份验证,但是没有打印任何内容到控制台,并且按钮没有改变。
当我再次尝试单击它时,我已经获得了应用程序的授权,这应该意味着身份验证已成功完成,但是我的应用程序中没有触发任何内容。

我确信自己的appdelegate可能出了点问题,但很快就不熟悉了,我不知道该怎么办。

老歌艺术

我想建议您使用这些步骤:-在您的VC类中,导入FacebookSDK语句和FBLoginViewDelegate?-您的出口应为:

//FB outlet
@IBOutlet var fbLoginView: FBLoginView

-在您的AppDelegate.swift中,还导入了FacebookSDK吗?-在AppDelegate.swift中的func中有一个func,它应该是:

import FacebookSDK

@UIApplicationMain类AppDelegate:UIResponder,UIApplicationDelegate {

var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    //FB implementation
    FBLoginView.self
    FBProfilePictureView.self


    return true
}

//FB Method handles what happens after authentication
func application (application:UIApplication, openURL url:NSURL, sourceApplication:NSString?, annotation:AnyObject) -> Bool {
    //test var
    var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication)
// attempt to extract a token from the url
return wasHandled

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章