Facebook SDK分享图片和文本

6
在使用Facebook SDK之前,我们使用UIActivityViewController进行分享,因为Facebook不允许我们在用户分享时预先填写信息,我们的解决方案是使用用户共享的图片描述UIPasteboard.general.string。因此,应用程序会切换到Messenger,用户可以粘贴。这个方法一直运行良好,直到我们开始使用Facebook SDK。
现在似乎当它打开Messenger时,UIPasteboard.general.string被重置了,我们无法再获取复制到剪贴板的图片描述。
这是我分享到Messenger的方式:
let sharePhoto = FBSDKSharePhoto()
sharePhoto.image = image

let content = FBSDKSharePhotoContent()
content.photos = [sharePhoto]

FBSDKMessageDialog.show(with: content, delegate: delegate)

你已经把这个放到剪贴板里给用户了吗?这是不被允许的,请参见 https://developers.facebook.com/docs/apps/review/prefill “你的应用程序可以建议内容,但使用你的应用程序的人应该选择手动复制粘贴或自己输入该内容。” - CBroe
是的,我将它放在用户剪贴板上,但首先通知用户,询问他们是否要复制到剪贴板。但即使用户从UITextView复制了某些内容,当Facebook SDK打开Messenger时,它也会被清除。 - Diogo Antunes
听起来像是Facebook故意实现的。 - CBroe
检查一下,它即将更改其API - https://developers.facebook.com/docs/sharing/ios - Jayachandra A
2个回答

3

是的,我也遇到了FB库更新后的这个问题。对于我来说,我通过以下方式解决了图片上的网页链接。结果是 - 您不需要要求用户粘贴任何内容。您可以自己完成并将其粘贴到标题或描述中。

let content = LinkShareContent(url: url,
                                       title: title,
                                       description: description,
                                       quote: nil,
                                       imageURL: imageURL)

        let dialog = ShareDialog(content: content)
        dialog.presentingViewController = parentVC
        dialog.mode = .automatic
        dialog.completion = { result in
             ...
        }

        try? dialog.show()

标题和描述现在是只读属性。因此,我们无法为标题或描述属性提供文本。 - Srinivas G

0

Facebook不支持同时分享图像和文本的UI。如果您想一起分享图像和文本,可以从应用程序设置中创建自定义故事,并将其作为开放式图形故事共享。这里是文档


在开发者账户中,Facebook 应用程序似乎没有 OpenGraph 设置。那么,我们如何配置OpenGraph设置以使用这些功能? - Srinivas G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接