[英]Share With Facebook Not Working Anymore on iOS 11
我使用适用于iOS的Facebook SDK,它在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 Developer Console创建您的应用程序。 之后,设置您的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 Share的iOS 11(在我的情况下为Objective-c中的FBSDKShareDialog)的此问题已通过升级到最新的Facebook API框架得以解决。 通过pod,当前如下所示:
播客文件
pod 'FBSDKCoreKit', '~> 4.27.0'
pod 'FBSDKLoginKit', '~> 4.27.0'
pod 'FBSDKShareKit', '~> 4.27.0'
在命令提示符下,使用“窗格搜索”将显示窗格的最新版本。 例如,播客搜索FBSDKShareKit
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.