【问题标题】:Facebook SDK SetupFacebook SDK 设置
【发布时间】:2015-06-30 12:16:01
【问题描述】:

我正在尝试将 Facebook SDK 添加到我的应用中,我已按照每一步操作。

我唯一的问题是我需要添加到 AppDelegate 的代码是在 Objective C 中并且我使用的是 Swift。我不知道如何将Objective C代码转换为swift,你能帮帮我吗?

这是代码:

- (void)applicationDidBecomeActive:(UIApplication *)application {
   [FBSDKAppEvents activateApp];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  return [[FBSDKApplicationDelegate sharedInstance] application:application
                                didFinishLaunchingWithOptions:launchOptions];
}

- (BOOL)application:(UIApplication *)application 
openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
     annotation:(id)annotation {
  return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                     openURL:url
                                           sourceApplication:sourceApplication
                                                  annotation:annotation];
} 

谢谢!

【问题讨论】:

    标签: ios objective-c facebook swift xcode6


    【解决方案1】:

    尝试 facebook 登录代码:

    Appdelegate.swift

    import UIKit
    
    import FBSDKCoreKit
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
    
        func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
        }
        func applicationWillResignActive(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)
        }
    }
    

    ViewController.swift

    import UIKit
    import FBSDKLoginKit
    
    class ViewController: UIViewController {
    
        var dict : NSDictionary!
    
        override func viewDidLoad() {
            super.viewDidLoad()
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    
        @IBAction func btnFBLoginPressed(sender: AnyObject) {
            var fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
            fbLoginManager .logInWithReadPermissions(["email"], handler: { (result, error) -> Void in
                if (error == nil){
                    var fbloginresult : FBSDKLoginManagerLoginResult = result
                    if(fbloginresult.grantedPermissions.containsObject("email"))
                    {
                        self.getFBUserData()
                        fbLoginManager.logOut()
                    }
                }
            })
        }
    
        func getFBUserData(){
            if((FBSDKAccessToken.currentAccessToken()) != nil){
                FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
                    if (error == nil){
                        self.dict = result as NSDictionary
                        println(result)
                        println(self.dict)
                        NSLog(self.dict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as String)
                    }
                })
            }
        }
    }
    

    【讨论】:

    • finishlaunchingwithoptions 给了我这个错误:postimg.org/image/51yv7nsuh
    • 这个方法你已经添加了两次@OmerN。
    • 它有效,但我还有一个问题:一些数据,例如名字显示如下:“\U05e2\U05d5\U05de\U05e8”,为什么?
    猜你喜欢
    • 2011-08-26
    • 2012-07-17
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多