Swift 3 和 Facebook swift SDK

Posted

技术标签:

【中文标题】Swift 3 和 Facebook swift SDK【英文标题】:Swift 3 and Facebook swift SDK 【发布时间】:2016-11-23 20:48:13 【问题描述】:

我一直在尝试了解如何在我正在创建的应用程序中集成 Facebook SDK for swift。我用过cocoapods:

pod 'FacebookCore'

pod 'FacebookShare'

https://github.com/facebook/facebook-sdk-swift

我正在使用 swift 3 编写我的应用程序,我只是希望我的用户能够在他们的新闻源上发布带有主题标签和应用程序徽标的消息(内容),并且还能够分享在应用程序中拍摄的照片带有主题标签和消息(内容)。 (都没有 Facebook 登录框架)

我已经阅读了 Facebook SDK swift 的文档以及 Facebook ios SDK 的文档:

https://developers.facebook.com/docs/swift

https://developers.facebook.com/docs/ios/getting-started

但是,我不确定我是否应该遵循 Facebook IOS 文档中显示的第一步(添加到 info.plist 等),以便在 Facebook 和我的应用程序之间建立连接以能够发布。那是因为在 Facebook Swift 文档中并没有对此一言不发。它只是说安装框架就可以了。

我想知道是否有人知道我该怎么做?有人知道视频教程或分步教程吗? (分享 Facebook 内容)

(我发现的所有教程都是从年初开始的(已过时),仅显示登录设置(不在 Swift 上)。还显示了使用 Import Social 的旧方法,SLComposeViewController 不起作用不再,仅适用于 twitter。)

谢谢..

PS。 我已经在我的应用程序中链接了框架和库。 并且还会收到以下警告:

ld:警告:找不到选项“-F/Users/Siles/Desktop/PartyTime/build/Debug-iphoneos/FBSDKCoreKit”的目录

ld:警告:找不到选项“-F/Users/Siles/Desktop/PartyTime/build/Debug-iphoneos/FBSDKShareKit”的目录

【问题讨论】:

【参考方案1】:

6 7 8 9 10 11 12 平台:ios,'9.0'

目标 'FBSwiftLogin' 做 使用_frameworks!

# FBSwiftLogin 的 Pods

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'

结束

导入 FBSDKLoginKit

@UIApplicationMain 类 AppDelegate: UIResponder, UIApplicationDelegate

var window: UIWindow?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
    return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)


func applicationWillResignActive(_ application: UIApplication) 
    FBSDKAppEvents.activateApp()


func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool 
    return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)

ViewController.swift

导入 UIKit 导入 FBSDKLoginKit

类视图控制器:UIViewController

var dict : [String : AnyObject]!

override func viewDidLoad() 
    super.viewDidLoad()


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()


@IBAction func btnFBLoginPressed(_ sender: AnyObject) 
    let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
    fbLoginManager.logIn(withReadPermissions: ["email"], from: self)  (result, error) in
        if (error == nil)
            let fbloginresult : FBSDKLoginManagerLoginResult = result!
            if fbloginresult.grantedPermissions != nil 
                if(fbloginresult.grantedPermissions.contains("email"))
                
                    self.getFBUserData()
                    fbLoginManager.logOut()
                
            
        
    


func getFBUserData()
    if((FBSDKAccessToken.current()) != nil)
        FBSDKGraphRequest(graphpath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start(completionHandler:  (connection, result, error) -> Void in
            if (error == nil)
                self.dict = result as! [String : AnyObject]
                print(result!)
                print(self.dict)
            
        )
    

【讨论】:

以上是关于Swift 3 和 Facebook swift SDK的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 6.3 (Swift) 中使用 Parse 和 Facebook 框架编译错误

facebook集成错误2500 OAuthException xcode 8 Swift 3

使用 FBSDKProfileExpressionKit 上传 Facebook 个人资料图片 - swift 3.0

解析 Facebook 登录 Swift 3.0

如何使用 Swift 3 从 Facebook SDK 下载照片?

如何从 swift 3 facebook 图形请求中解析这个 JSON