Facebook App Link仅在重新编译后才有效

时间:2016-05-12 13:07:57

标签: ios objective-c facebook applinks

facebook App Link仅在使用facebook url debug tool.重新填充网址后才能运行。如果没有此步骤,Facebook应用程序将在内部网络浏览器中打开该页面。重新调整后,应用程序切换和导航到应用程序商店都可正常工作(如果未安装应用程序)。共享链接的头部分如下所示:

<head>
<meta charset="utf-8">
<title>Title</title>

<meta property="fb:app_id" content="1234567890123456">
<meta property="og:url" content="http://www.myawesomeapp.com/model/{{$model->id}}">
<meta property="og:type" content="website">
<meta property="og:title" content="MyAwesomeApp">
<meta property="og:image" content="{{$model->image}}"/>
<meta property="og:description" content="{{$model->text}}">
<meta property="og:site_name" content="MyAwesomeApp">

<!--applink-->
<meta property="al:ios:url" content="myawesomeapp://model/{{$model->id}}" />
<meta property="al:ios:app_store_id" content="<<random app id for testing>>" />
<meta property="al:ios:app_name" content="MyAwesomeApp" />
<meta property="al:web:should_fallback" content="false" />

通过以下方式从iOS应用程序共享链接:

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
[content setContentDescription:model.text];
[content setContentURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.myawesomeapp.com/model/%ld", model.id]]];
content.imageURL = model.image ? [NSURL model.image] : nil;
[FBSDKShareAPI shareWithContent:content delegate:self];

我做错了什么或者是facebook bug?或者也许我必须在每个链接共享后自动调用重新制作工具?

1 个答案:

答案 0 :(得分:0)

好吧,我从php后端方面找到了一种hackish方式,它解决了问题,但是......它很难看:

$url = 'https://graph.facebook.com/?id=' . urlencode('https://www.myqwesomeapp.com/model/' . $model->id) . '&scrape=true';
$cmd = "curl -X POST " . "'" . $url . "' > /dev/null 2>&1 &";
exec($cmd, null, null); 

当从iOS应用程序共享内容时,我会通知后端,并使用scrape = true参数将共享URL发布到图形api端点。