7

In versions below 11 ShareButton to facebook works successfull, but in 11 version this function doesn't work. What can u advice?

if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeFacebook) {
        var vc: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
        vc.setInitialText("My text")
        self.present(vc, animated: true, completion: nil)
    }
Sasha
  • 81
  • 1
  • 1
  • 6

3 Answers3

16

You can use the facebook sdk to share content Like

Step 1:

install pod :- pod 'FacebookShare'

Step 2:

import FBSDKShareKit

Step 3:

func shareTextOnFaceBook() {
    let shareContent = ShareLinkContent()
    shareContent.contentURL = URL.init(string: "https://developers.facebook.com")! //your link
    shareContent.quote = "Text to be shared"
    ShareDialog(fromViewController: self, content: shareContent, delegate: self).show()
}

func sharer(_ sharer: Sharing, didCompleteWithResults results: [String : Any]) {
    if sharer.shareContent.pageID != nil {
        print("Share: Success")
    }
}
func sharer(_ sharer: Sharing, didFailWithError error: Error) {
    print("Share: Fail")
}
func sharerDidCancel(_ sharer: Sharing) {
    print("Share: Cancel")
}

Step 4: Must add this in Info.plist

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbauth2</string>
</array>
Krishna Raj Salim
  • 7,331
  • 5
  • 34
  • 66
Jaydeep Vyas
  • 4,411
  • 1
  • 18
  • 44
3

All of social constants (facebook, twitter, LinkedIn and others) have been deprecated on iOS 11 .

See here: https://developer.apple.com/documentation/social/social_constants

You can use the FBSDKShareKit for the sharing function on facebook.

https://developers.facebook.com/docs/sharing/ios/

shilei365
  • 223
  • 2
  • 13
0

Now it's more easy and more reliable to share media in facebook using FBSDKShareKit. You can follow the link below for details tutorial.

Facebook, Messenger - Photo, Video, Link sharing in iOS Swift.

Dharman
  • 30,962
  • 25
  • 85
  • 135
emraz
  • 1,563
  • 20
  • 28