如何使用Facebook applink托管动态内容 - IOS

时间:2017-07-27 02:15:10

标签: ios facebook-graph-api facebook-ios-sdk deep-linking applinks

随着Facebook的新变化,应用程序的深层链接(通过基本共享共享)不再有效。

所以,我决定实施applinks。但我的移动应用程序没有相应的网站,我想分享给Facebook的内容。所以我选择Facebook的移动主机API用于应用程序链接

https://developers.facebook.com/docs/applinks/hosting-api

我生成了一个应用链接,并在我的ios应用中与其他内容共享,如下所示。

// Create an object
    NSDictionary *properties = @{
                                 @"og:type": @"article",
                                 @"og:url": @"https://fb.me/[some id]",
                                 @"og:title": name,
                                 @"og:description": desc,
                                 @"og:image":imageurl
                                 };

    FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject  objectWithProperties:properties];

    // Create an action
    FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
    action.actionType = @"news.publishes";

    [action setObject:object forKey:@"article"];

    // Create the content
    FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
    content.action = action;
    content.previewPropertyName = @"article";


    FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];
    shareDialog.fromViewController = self;
    shareDialog.shareContent = content;
    [shareDialog show]; 

通过这样做,我可以在Facebook上分享内容。点按内容后,我的iOS应用即可启动。所以没关系。

但我的问题是,我想分享的内容是动态的。我有两个问题。

  1. 我可以为动态内容创建facebook applinks吗?
  2. 从deeplink打开应用程序后,我想将用户导航到我的应用程序内的内容屏幕。但我无法做到这一点,因为我看不到任何相关内容在 - (BOOL)应用程序中收到的URL中共享内容:(UIApplication *)app         openURL:(NSURL *)url         options:(NSDictionary *)options方法
  3. 我想知道这个要求是通过facebook的移动主机API为应用链接实现的。

1 个答案:

答案 0 :(得分:0)

来自Branch的粘土。

这两个问题的答案都是肯定的。问题是Facebook很难处理,他们的链接在很多情况下都会破裂。你可以在这里说服自己。 Deep Linking from Facebook in 2017

完全披露后,我为Branch工作,所以请按照您的意愿行事。我们实际上支持链接托管,因此您应该能够在不托管您自己的Web域的情况下使用我们。我们还在我们自己的链接中支持Facebook链接,只需在我们的链接中使用OpenGraph参数即可。

OpenGraph Parameters in Branch Links

从概念上讲,在内部,分支链接如下所示:

{
    tags: [ 'tag1', 'tag2' ],
    channel: 'facebook',
    feature: 'dashboard',
    stage: 'new user',
    alias: 'myalias',
    data: {
        mydata: 'something',
        foo: 'bar',
        '$desktop_url': 'http://myappwebsite.com',
        '$ios_url': 'http://myappwebsite.com/ios',
        '$android_url': 'http://myappwebsite.com/android',
        '$og_app_id': '12345',
        '$og_title': 'My App',
        '$og_description': 'My app\'s description.',
        '$og_image_url': 'http://myappwebsite.com/image.png'
    }
}

通过这种方式,您可以附加您想要的任何元数据,因此可以通过深层链接支持您的动态内容,同时覆盖Facebook链接以及几乎所有其他平台和设备。我们还介绍了Facebook App链接不支持的deferred deep linking

对于您正在寻找的基本深层链接,该服务是免费的。