iOS 中的 Facebook 分享
Posted
技术标签:
【中文标题】iOS 中的 Facebook 分享【英文标题】:Facebook Sharing in iOS 【发布时间】:2015-12-16 09:43:12 【问题描述】:我在我的应用中实现了 Facebook 分享。
FBSDKShareLinkContent *content=[[FBSDKShareLinkContent alloc]init];
[content setContentDescription:theDescription];
[content setContentTitle:theTitle];
//[content setContentURL:[NSURL URLWithString:itemURL]];
// content.contentURL = [NSURL URLWithString:@"http://developers.facebook.com"];
[content setImageURL:[NSURL URLWithString:imageURL]];
[FBSDKShareDialog showFromViewController:self withContent:content delegate:self];
但“共享”对话框显示为空。为什么它不显示/发布我设置的标题和描述?
【问题讨论】:
【参考方案1】:共享视图的文本未预填充,因为 Facebook 不允许您这样做。内容描述和标题是在 Facebook 上显示链接时使用的,这与分享用语不同。
【讨论】:
好的,感谢您的回复,但如何只发布文字? & 为什么图片也没有显示? 如果显示链接,则标题和描述将从 URL 内容中添加,而不是以编程方式形成【参考方案2】:试试看;
FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc]init];
[content setContentDescription:theDescription];
[content setContentTitle:theTitle];
[content setImageURL:[NSURL URLWithString:imageURL]];
[shareDialog setMode:FBSDKShareDialogModeAutomatic];
[shareDialog setShareContent:content];
[shareDialog setFromViewController:self];
[shareDialog show];
【讨论】:
等等...我正在检查 我也编辑过,如果还是不行,把模式 FBSDKShareDialogModeAutomatic 改成 FBSDKShareDialogModeBrowser。 其实,我想要原生应用所以我设置了Automatic Mode
但不工作【参考方案3】:
你能试试这个(Objective-C)吗?对我来说,它在 Swift 中运行良好:
func shareLinks(title:String, imageUrl:String, contentUrl:String, vc:UIViewController)
var fbcontent = FBSDKShareLinkContent()
//Valid url that contains any content
fbcontent.contentURL = NSURL(string: contentUrl)
//Title of this post
fbcontent.contentTitle = title
//Image will be displayed in timeline with this post
fbcontent.imageURL = NSURL(string: imageUrl)
dialog.shareContent = fbcontent
dialog.fromViewController = vc
dialog.mode = FBSDKShareDialogMode.Automatic
dialog.show()
【讨论】:
也请不要添加内容 URL 并检查它不会工作 尝试无内容网址【参考方案4】:如果你分享这个
[NSURL URLWithString:@"http://developers.facebook.com"];
共享对话框是否显示为空?
如果没有 - 您必须知道您共享的页面上必须有 OPEN GRAPH 信息。
供分享图片使用
FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = image;
photo.userGenerated = YES;
photo.caption=@"Some text";
FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[photo];
【讨论】:
感谢您的回答,但我没有分享链接,我只有文字和图片要分享 我分享图片试试这个 FBSDKSharePhoto 使用 photo.caption 或 content.caption 它给了我错误 com.facebook.sdk:FBSDKErrorDeveloperMessageKey=photos must have UIImages 我尝试设置 imageURL 您的设备上有图像吗?还是仅通过网址?【参考方案5】:您可以使用 SLComposer 作为替代方法
【讨论】:
【参考方案6】:对于 FBSDK 4.12.0 版本:
Facebook 链接分享工作如下:
FBSDKShareLinkContent *content =[[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:songUrl];
content.imageURL = [NSURL URLWithString:artWorkURL];
content.contentTitle= [NSString stringWithFormat: @"%@", trackName];
content.contentDescription=[NSString stringWithFormat:@"Some text"];
[FBSDKShareDialog showFromViewController:self withContent:content delegate:self];
【讨论】:
以上是关于iOS 中的 Facebook 分享的主要内容,如果未能解决你的问题,请参考以下文章
Facebook SDK 错误 Domain=com.facebook.sdk Code=5 在 ios 中获取好友列表时
Facebook iOS SDK 和护照-facebook 身份验证