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 身份验证

无法使用 quickblox(iOS)登录 facebook

iOS 中的 Facebook 分享

在特定页面上打开 facebook iOS 应用

Facebook iOS SDK:获取专辑封面图片