0

我正在使用 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。)”

有人可以帮忙吗?

4

1 回答 1

1

Facebook SDK 的错误代码有些模糊,因为它们涵盖了相当大的错误域。您提供的代码并未真正显示变量的内容,因此我无法确定问题所在。但是,这com.facebook.sdk.share error 2是一个无效参数错误,通常是由FBSDKShareLinkContent.

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

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

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

SDK 的错误代码参考也可能会有所帮助。

于 2017-01-04T03:08:31.447 回答