2015-10-14 106 views
1

我一直对我的头撞这几天 - 我想要做的就是共享一个图像,这是在我的iOS应用程序在Facebook上创建的,并在一些方式记入应用程序。通过ios Facebook SDK中的共享对话框共享应用程序名称

我不能放入任何内容,因为他们不允许它 - 我可以在图像的底部添加横幅,但这会损坏体验。我真正想要的只是说出我的应用程序的名称以及共享 - 但我有一段时间让它工作的魔鬼。

我能得到一个真正的份额容易的工作,通过包括相关的SDK文件,这样做:

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

但当分享在Facebook出现,它或者归因于iOS或什么都没有。

我发现我可以真正得到它的属性我的应用程序的唯一方法是在确保用户登录后使用FBSDKShareAPI。为此,我需要让用户登录并授予我发布权限,为此,我需要让我的应用程序通过Facebook等批准 - 所有的东西,只要我可以告诉应该没有必要。

我疯了,以为它应该属性我的应用程序,如果我使用FBSDKShareDialog?还是设计它没有,我需要以更加迂回的方式使用登录和FBSDKShareAPI或其他图形方法来完成它?前者将是一个更简单的实现和更好的用户体验,只要它能工作!

我已经在我的info.plist中得到了正确的东西(我认为这是通过它在FBSDKShareAPI方法中的正确属性应用程序这一事实证实的)。

谢谢! 丹

+0

离我最近的一个问题就是在facebook开发人员小组上看到一个人,他似乎认为共享对话共享永远不会归因于应用程序,因为* *是分享的用户,而不是应用程序。有谁知道如果是这样的话? – user3596462

+0

你是对的。只有使用API​​发布帖子时,才会显示归因。不使用共享对话框。 – Roemer

回答

0

为了让应用程序的名称在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”权限在用户登录时到您的应用程序。