无法使用 Facebook 分享 link 内容向 url 添加描述和标题
Can't add description and title to url using Facebook share link content
我尝试为共享 link 内容添加描述和标题。我正在使用 pod 'FacebookShare'(因为当我使用 FBSDKShareKit 时,不推荐使用描述和标题)
https://i.stack.imgur.com/9p9lp.jpg
这是我的 'FacebookShare' 代码:
do{
var myContent: LinkShareContent = LinkShareContent(url: NSURL(string:contentUrl!) as! URL )
myContent.description = "Some description"
myContent.title = "Hello"
let shareDialog = ShareDialog(content: myContent)
shareDialog.mode = .shareSheet
shareDialog.presentingViewController = self
shareDialog.failsOnInvalidData = true
shareDialog.completion = { result in
// Handle share results
}
try shareDialog.show()
} catch {
print("Error: \(error)")
}
但我只能在使用时看到描述和标题:
shareDialog.mode = .native
在所有其他情况下(.shareSheet、.Web、.Browser、.FeedWeb、.FeedBrowser)它们不会添加。我不想使用 .native 模式,因为不是每个人都有本地 Facebook 应用程序。
我的情况有解决办法吗?
****更新:****
在网站(我共享 url)上为标题、描述和图像值以及其他变量设置适当的元标记。
允许将 link 附加到帖子的方法现在从专有元标记而不是代码本身检索图像、标题和描述。只需删除这些行即可消除警告并在网站本身上设置适当的标签。
在此处查看确切的弃用更改日志:
https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations
您应该像这样更新 myContent
和 shareDialog
部分:
let myContent:FBSDKShareLinkContent = FBSDKShareLinkContent()
myContent.contentTitle = "Hello"
myContent.contentDescription = "Test message"
myContent.contentURL = (URL(string: "https://developers.facebook.com"))
let shareDialog = FBSDKShareDialog()
shareDialog.mode = .shareSheet
FBSDKShareDialog.show(from: self, with: myContent, delegate: nil)
您还可以导入并使用 Social
库来创建 Facebook 分享框。并使用 Facebook 共享委托功能控制您的共享结果。像这样:
import FBSDKShareKit
import Social
class YourViewController: UIViewController, FBSDKSharingDelegate {
func facebookShareButtonClicked() {
let vc = SLComposeViewController(forServiceType:SLServiceTypeFacebook)
vc?.add(UIImage(named: "YourImageName"))
vc?.add(URL(string: "https://developers.facebook.com")) //Your custom URL
vc?.setInitialText("Your sample share message...")
self.present(vc!, animated: true, completion: nil)
}
//Facebook share delegate functions:
func sharer(_ sharer: FBSDKSharing!, didCompleteWithResults results: [AnyHashable : Any]!) {
print("Success")
}
func sharer(_ sharer: FBSDKSharing!, didFailWithError error: Error!) {
print("didFailWithError: ", error)
}
func sharerDidCancel(_ sharer: FBSDKSharing!) {
print("Sharer cancelled")
}
}
注意:请使用您的设备进行尝试。它在模拟器上不起作用。并确保您的设备安装了 Facebook 应用程序。
我遇到了同样的问题 - title、description 和 imageUrl 在最新的 Facebook SDK 版本中被弃用并且只读。我刚刚下载了一个 2017 年 4 月的旧版本,它按预期工作。
var content = LinkShareContent.init(url: URL.init(string: url)!)
content.quote = "your content here"
请注意最新的更新说明和标题已弃用,因此请使用这个代替那个。别忘了导入 FacebookShare .
我尝试为共享 link 内容添加描述和标题。我正在使用 pod 'FacebookShare'(因为当我使用 FBSDKShareKit 时,不推荐使用描述和标题)
https://i.stack.imgur.com/9p9lp.jpg
这是我的 'FacebookShare' 代码:
do{
var myContent: LinkShareContent = LinkShareContent(url: NSURL(string:contentUrl!) as! URL )
myContent.description = "Some description"
myContent.title = "Hello"
let shareDialog = ShareDialog(content: myContent)
shareDialog.mode = .shareSheet
shareDialog.presentingViewController = self
shareDialog.failsOnInvalidData = true
shareDialog.completion = { result in
// Handle share results
}
try shareDialog.show()
} catch {
print("Error: \(error)")
}
但我只能在使用时看到描述和标题: shareDialog.mode = .native 在所有其他情况下(.shareSheet、.Web、.Browser、.FeedWeb、.FeedBrowser)它们不会添加。我不想使用 .native 模式,因为不是每个人都有本地 Facebook 应用程序。 我的情况有解决办法吗?
****更新:****
在网站(我共享 url)上为标题、描述和图像值以及其他变量设置适当的元标记。
允许将 link 附加到帖子的方法现在从专有元标记而不是代码本身检索图像、标题和描述。只需删除这些行即可消除警告并在网站本身上设置适当的标签。
在此处查看确切的弃用更改日志:
https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations
您应该像这样更新 myContent
和 shareDialog
部分:
let myContent:FBSDKShareLinkContent = FBSDKShareLinkContent()
myContent.contentTitle = "Hello"
myContent.contentDescription = "Test message"
myContent.contentURL = (URL(string: "https://developers.facebook.com"))
let shareDialog = FBSDKShareDialog()
shareDialog.mode = .shareSheet
FBSDKShareDialog.show(from: self, with: myContent, delegate: nil)
您还可以导入并使用 Social
库来创建 Facebook 分享框。并使用 Facebook 共享委托功能控制您的共享结果。像这样:
import FBSDKShareKit
import Social
class YourViewController: UIViewController, FBSDKSharingDelegate {
func facebookShareButtonClicked() {
let vc = SLComposeViewController(forServiceType:SLServiceTypeFacebook)
vc?.add(UIImage(named: "YourImageName"))
vc?.add(URL(string: "https://developers.facebook.com")) //Your custom URL
vc?.setInitialText("Your sample share message...")
self.present(vc!, animated: true, completion: nil)
}
//Facebook share delegate functions:
func sharer(_ sharer: FBSDKSharing!, didCompleteWithResults results: [AnyHashable : Any]!) {
print("Success")
}
func sharer(_ sharer: FBSDKSharing!, didFailWithError error: Error!) {
print("didFailWithError: ", error)
}
func sharerDidCancel(_ sharer: FBSDKSharing!) {
print("Sharer cancelled")
}
}
注意:请使用您的设备进行尝试。它在模拟器上不起作用。并确保您的设备安装了 Facebook 应用程序。
我遇到了同样的问题 - title、description 和 imageUrl 在最新的 Facebook SDK 版本中被弃用并且只读。我刚刚下载了一个 2017 年 4 月的旧版本,它按预期工作。
var content = LinkShareContent.init(url: URL.init(string: url)!)
content.quote = "your content here"
请注意最新的更新说明和标题已弃用,因此请使用这个代替那个。别忘了导入 FacebookShare .