我可以使用标准共享操作从我的 iOS 应用程序中共享到 Facebook。我看到其他应用程序也这样做。
但是,我在其他应用程序中注意到的是,它们的应用程序名称包含在 Facebook 共享帖子中。
如果我在浏览器中点击该链接,它会转到:
https://apps.facebook.com/carousell/?fb_source=feed
如果我在 Facebook 移动应用程序中点击该链接,它将转到应用程序的商店页面。
我可以从 iOS 应用程序做同样的事情吗?或者它是网站上标识的东西?如果是这样,我怎样才能完成同样的事情?
最佳答案
我不确定我是否理解您的问题,但看着您的两张图片,我的印象是您正在尝试使用用户设备上的 Facebook 应用程序发布到用户的墙上,而“Carousell”应用程序正在创建以编程方式发布。我不确定是否可以将 Facebook 应用程序设置为包含有关调用发布操作的应用程序的元数据,但我知道如何以编程方式进行。一种方法是创建一个“故事”帖子(我意识到这不是 Carousell 在这里做的;只是以此为例)。
要创建故事帖子,您首先需要在开发者门户中设置故事。为此,请登录您的 Facebook 开发者门户并选择您的应用。然后从左侧的菜单中选择“打开图表”。我不会费心去解释如何从这里创建一个真实的故事,因为它非常简单。完成故事创建后,单击“获取代码”以查看所需的代码片段。
这是我的一个应用程序的示例。在这种情况下,我在 imagePickerController:didFinishPickingMediaWithInfo:
中执行所有这些操作委托(delegate)方法。我正在为故事创建一个对象、 Action 和内容,然后通过共享对话框将其呈现给用户:
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 开发人员门户上自动为您生成,但您可以尝试使用默认代码并通过以编程方式发布到您的时间线进行试验,直到您获得所需的结果。在您的故事获得批准之前,除了您的应用程序测试人员之外,没有人可以看到这些帖子,或者至少到目前为止我的经验是这样。我希望这有助于回答您的问题。
关于ios - 从 iOS 应用程序分享到 Facebook 并创建应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33469743/