iOS上的Facebook SDK共享不起作用

Posted

技术标签:

【中文标题】iOS上的Facebook SDK共享不起作用【英文标题】:Facebook SDK share on iOS not working 【发布时间】:2016-06-14 10:26:07 【问题描述】:

我正在使用 Swift 在 Facebook 上为 ios 应用分享内容。

我编写了一个名为 FBManager 的单例类和如下函数。

func shareContent(content:String, contentURL:String?, contentTitle:String? , fromController controller:UIViewController 
        let shareDialog = FBSDKShareDialog()
        let shareLinkContent = FBSDKShareLinkContent()

        shareLinkContent.contentDescription = content

        if let url = contentURL
        
            shareLinkContent.contentURL = NSURL(string: url)
        

        if let title = contentTitle
        
            shareLinkContent.contentTitle = title
        

        shareDialog.delegate = self
        shareDialog.fromViewController = controller
        shareDialog.shareContent = shareLinkContent
        shareDialog.show()
  

但这在 iOS 8 和 iOS 9 上甚至都没有显示共享对话框。 而是调用以下委托方法

func sharer(sharer: FBSDKSharing!, didFailWithError error: NSError!) 

出现错误 - “操作无法完成。(com.facebook.sdk.share 错误 2。)”

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

Facebook SDK 的错误代码有些含糊不清,因为它们涵盖了相当大的错误域。您提供的代码并未真正显示变量的内容,因此我无法确定问题所在。但是,com.facebook.sdk.share error 2Invalid Argument 错误,通常是由 FBSDKShareLinkContent 的一个或多个成员的格式无效引起的。

一般可以使用FBSDKErrorCode枚举切换(error as NSError).code,找到它属于哪个域。 (在这种情况下,它将指向无效参数)

您也可以直接在didFailWithError委托方法中print(error),这将输出一个非常描述性的错误日志以及具体原因。

检查您的contentURL,确保它以http://https:// 或任何其他有效协议开头。如果您正在使用或计划使用imageURL,则相同。这很可能导致您的错误!

The SDK's error codes reference 也可能有帮助。

【讨论】:

以上是关于iOS上的Facebook SDK共享不起作用的主要内容,如果未能解决你的问题,请参考以下文章

iOS - Facebook SDK allowLoginUI 不起作用

IOS Facebook好友邀请在facebook sdk中不起作用

Facebook iOS SDK 登录不起作用 - NSException

iOS Facebook SDK 3.1 的设置按钮不起作用

iOS Facebook SDK 4 FBSDKShareDialog

Facebook iOS SDK 3.1.1“closeAndClearTokenInformation”方法不起作用