我可以使用标准共享操作从我的iOS应用程序中分享到Facebook。我见过其他应用程序也这样做。
然而,我在其他应用程序中注意到的是他们的应用程序名称包含在Facebook共享帖子中。
如果我在浏览器中点击该链接,则会转到:
https://apps.facebook.com/carousell/?fb_source=feed
如果我从Facebook移动应用程序中点击该链接,它将转到应用程序的商店页面。
我可以在iOS应用程序中执行相同的操作吗?或者它是在网站上发现的东西?如果是这样,我怎么能做到这一点?
答案 0 :(得分:1)
我不确定我理解你的问题,但看着你的两张图片,我得到的印象是你试图使用用户的Facebook应用程序发布到用户的墙上#s; s设备,而" Carousell" app以编程方式创建帖子。我不确定Facebook应用程序是否可以设置为包含有关调用帖子操作的应用程序的元数据,但我知道如何以编程方式执行此操作。一种方法是创建一个故事"发帖(我意识到这不是Carousell在这里做的事情;只是以此为例)。
要创建Story帖子,首先需要在开发人员门户中设置故事。为此,请登录您的Facebook Developer门户并选择您的应用。然后选择"打开图表"从菜单到左边。我不打算从这里解释如何创建一个真实的故事,因为它非常简单。完成故事创建后,单击"获取代码"查看您需要的代码段。
以下是我的某个应用中的示例。在这种情况下,我在imagePickerController:didFinishPickingMediaWithInfo:
委托方法中执行所有这些操作。我正在为故事创建一个对象,动作和内容,然后通过“共享”对话框向用户显示:
UIImage *image = info[UIImagePickerControllerOriginalImage];
FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = image;
photo.userGenerated = YES;
NSDictionary *properties = @{
@"og:type": @"appNamespace:objectTypeName",
@"og:title": @"Type Title",
@"og:description": @"Facebook story post!",
@"og:url": @"http://samples.ogp.me/bignumber",
@"og:image": @[photo]
};
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"appNamespace:objectTypeName";
[action setObject:object forKey:@"objectTypeName"];
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"objectTypeName";
[FBSDKShareDialog showFromViewController:someViewController
withContent:content
delegate:self];
这种方法将创造一个故事"帖子中还包含您的应用名称和应用的链接。我 大多数此代码将在Facebook开发人员门户网站上自动为您生成,但通过以编程方式发布到您的时间轴,直到获得您正在寻找的结果,即可使用默认代码并进行实验。除了您的应用测试人员之外,没有人可以看到这些帖子,直到您的故事获得批准,或者至少这是我迄今为止的经历。我希望这有助于回答你的问题。