与Facebook共享不能在iOS 11上工作了

我使用Facebook SDK对于iOS和它的工作正常在iOS 10,但是当我升级我的手机到iOS 11的Facebook共享不工作了。 请帮忙,提前致谢。

对于iOS 11和Facebook共享(在我的情况下,Objective-c中的FBSDKShareDialog),这个问题是通过升级到最新的Facebook API框架来解决的。 通过豆荚,目前如下:

Podfile

pod 'FBSDKCoreKit', '~> 4.27.0' pod 'FBSDKLoginKit', '~> 4.27.0' pod 'FBSDKShareKit', '~> 4.27.0' 

在命令提示符下,使用“pod search”将显示pod的最新版本。 例如,podsearchFBSDKShareKit

不幸的是,随着iOS 11的更新,已经去除了用于系统整合的单点login的社交networking服务(Facebook,Twitter,Vimeo和Flickr)。

而不是使用这个片段的iOS 10和之前

 let viewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook) viewController.add(imageView.image!) viewController.add(URL(string: "http://www.example.com/")) viewController.setInitialText("Text to post!") self.present(viewController!, animated: true, completion: nil) 

您可以使用 FBSDKGraphRequest 在Facebook上 发帖 。

首先从Facebook Developer Console创build您的应用程序。 之后,设置你的Xcode项目(按照这里的说明: https : //developers.facebook.com/docs/ios/getting-started/ )。

用户需要先login后才能login:

  let login: FBSDKLoginManager = FBSDKLoginManager() login.logIn(withPublishPermissions: ["publish_actions"], from: self) { (result, error) in if (error != nil) { print("publish_actions: \(error!)") } else if (result?.isCancelled)! { print("publish_actions: Canceled") } else if (result?.grantedPermissions.contains("publish_actions"))! { print("publish_actions: permissions granted: \(String(describing: result?.token.tokenString))") UserDefaults.standard.set(result?.token.tokenString, forKey: "facebook_token") } } 

logging后保存令牌并使用它通过FBSDKGraphRequest发送消息:

 FBSDKGraphRequest.init(graphPath: "me/feed", parameters: ["message": "text to post on Facebook"], tokenString: "token", version: "v2.10", httpMethod: "POST").start(completionHandler: { (connection, result, error) -> Void in if let error = error { print("Error: \(error)") } else { print("Posted successfully!") } }) 

希望这个帮助。