我正在使用FBShareDialog共享Web链接,并且还共享SLComposeViewController,并且web链接仅托管在我的服务器上,并且在该网页上所有facebook元标记都正确设置如下:
<meta property="fb:app_id" content="MY_APP_ID">
<meta property="og:url" content="[http://example.com/share/?ODk0][1]">
<meta property="og:type" content="article">
<meta property="og:title" content="I Created This With App - The Office">
<meta property="og:description" content="NOOOO!">
<meta property="og:image" content="http://example.com/upload/large/5971ed74a0e52.png">
<meta property="og:image:width" content="800">
<meta property="og:image:height" content="420">
<meta property="og:site_name" content="My App Name">
当我分享以下链接时 http://example.com/share/?ODk0
直接从Facebook然后它获取og:image元标记中提到的图像和所有工作.. 当我尝试测试到https://developers.facebook.com/tools/debug/sharing/的链接时,它也表明一切都是正确的。
但是当我使用以下代码从我的应用程序分享此链接时:
let content = FBSDKShareLinkContent.init()
content.contentURL = URL.init(string: "http://example.com/share/?ODk0")
let dialog = FBSDKShareDialog.init()
dialog.fromViewController = parentViewController
dialog.shareContent = content
dialog.mode = .shareSheet
dialog.show()
然后它将打开共享对话框然后它获取og:图像并显示在共享对话框上,然后我在Facebook上发布POST。然后我去facebook,它没有显示图像。这是我过去两周以来面临的问题。我升级了Facebook sdk,并检查了所有升级但没有运气。
有没有人可以帮我解决这个问题?
感谢。
答案 0 :(得分:0)
let shareURL = String.init(format: "%@f-%@", SHAREURL, base64!)
let content = FBSDKShareLinkContent()
content.contentURL = NSURL(string: shareURL)! as URL
print("facebook content url :\(content.contentURL)")
let dialog = FBSDKShareDialog()
dialog.fromViewController = self
dialog.shareContent = content
dialog.delegate = self
dialog.mode = .feedWeb
if dialog.canShow() {
dialog.show()
}
使用上面的代码它终于为我工作了。