与Facebook分享不再在iOS 11上工作



我使用Facebook SDK进行iOS,并且在iOS 10上的工作正常,但是当我将手机升级到iOS 11中时,Facebook共享不再起作用。请提供帮助,谢谢。

不幸的是,iOS 11更新了社交网络服务(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开发人员控制台创建您的应用程序。之后,设置您的Xcode项目(按照此处的说明:https://developers.facebook.com/docs/ios/getting-started/)。

在发布之前需要记录用户:

    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")
            }
        }

记录后保存令牌并使用它通过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!")
                            }
                           })

希望这个帮助。

通过Facebook共享的iOS 11这个问题(在我的情况下,Objective-C中的FBSDKSharedialog)是通过升级到最新的Facebook API框架来固定的。通过PODS,目前如下:

podfile

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

从命令提示符中,使用" POD搜索"将显示最新版本的POD。例如,pod搜索fbsdksharekit

最新更新