通过 ios Facebook SDK 中的共享对话框共享时归属应用名称

Posted

技术标签:

【中文标题】通过 ios Facebook SDK 中的共享对话框共享时归属应用名称【英文标题】:Attributing app name when sharing via share dialog in ios Facebook SDK 【发布时间】:2015-10-14 13:46:34 【问题描述】:

这几天我一直在努力解决这个问题 - 我想做的就是在 Facebook 上分享在我的 ios 应用中创建的图像,并以某种方式将其记入该应用。

我不能放入任何内容,因为他们不允许 - 我可以在图片底部添加横幅,但这会有点破坏体验。我真正想要的只是在分享时说出我的应用程序的名称 - 但我正忙着让它工作。

通过包含相关的 SDK 文件并执行以下操作,我可以非常轻松地获得共享:

FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image =_imgMainImage.image;
FBSDKSharePhotoContent *content=[[FBSDKSharePhotoContent alloc]init];
content.photos=@[photo];
[FBSDKShareDialog showFromViewController:self withContent:content delegate:nil];

但当分享出现在 Facebook 上时,它要么归因于 iOS,要么根本没有。

我发现我实际上可以让它归因于我的应用程序的唯一方法是在确保用户登录后使用 FBSDKShareAPI。为此,我需要让用户登录并授予我发布权限,为此,我需要让我的应用程序获得 facebook 等的批准——据我所知,这一切都是不必要的。

如果我使用 FBSDKShareDialog,它应该归因于我的应用程序,我是否疯了?还是设计它没有,我需要以更迂回的方式使用登录和 FBSDKShareAPI 或其他图形方法?前者将是一个更容易实现和更好的用户体验,只要它可以工作!

我的 info.plist 中有正确的内容(我认为,在 FBSDKShareAPI 方法的情况下,它正确地归因于应用程序这一事实证明了这一点)。

谢谢! 丹

【问题讨论】:

我对此最接近的答案是 facebook 开发人员组中的某个人,他似乎建议共享对话框共享永远不会归因于该应用程序,因为它共享的用户,而不是应用程序。有人知道是不是这样吗? 你说得对。仅当您使用 API 发布帖子时,才会显示出处。不使用共享对话框。 【参考方案1】:

为了让应用名称出现在 Facebook 上的帖子中,您必须通过以下方式分享它:

FBSDKSharePhoto *sharePhoto = [[FBSDKSharePhoto alloc] init];
sharePhoto.caption = @"Some caption";
sharePhoto.image = [UIImage imageNamed:@"my_photo.jpg"];

FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[sharePhoto];

[FBSDKShareAPI shareWithContent:content delegate:self];

确保在用户登录您的应用时设置“public_actions”权限。

【讨论】:

以上是关于通过 ios Facebook SDK 中的共享对话框共享时归属应用名称的主要内容,如果未能解决你的问题,请参考以下文章

通过 FB SDK for iOS 将视频分享到 facebook

ios facebook swift sdk 共享对话框永远不会返回成功

Facebook 通过 ios 中的社交框架登录

通过Facebook Native app - iOS Facebook SDK分享时,“引用”缺失

使用 facebook SDK 仅共享文本

Facebook通过iOS中的Facebook SDK通过应用程序登录?