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 2
是 Invalid 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 的设置按钮不起作用