簡體   English   中英

在iOS 11上與Facebook分享不再可用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM