如何深度链接到Facebook应用程序(非页面选项卡)


How to deep link to a Facebook App (NOT Page Tab)

我需要链接到我的Facebook应用程序中的特定页面该应用程序不在页面选项卡中,由于项目限制,无法在其中

这是url格式:https://apps.facebook.com/myappname

我需要在末尾传递一个参数(如/next.html或?page=next),这样我就可以直接从应用程序外部(通过电子邮件)链接到特定页面。

我该如何设置?我的项目使用PHP和jQuery。如果可能的话,我希望能够严格使用Javascript来完成这项工作。

我发现了大量关于如何深度链接页面选项卡或移动应用程序的信息,但没有找到常规应用程序。我发现有消息说这是可能的,但没有关于如何在网上或脸书上实际做到这一点。

谢谢你的帮助。

编辑:

好吧,我用PHP实现了。对于其他有这个问题的人来说,这就是我所做的。

在你的FB应用程序中的"网站URL"的最后添加一个"?",然后创建一个类似于此的重定向文件作为你的应用程序登录页(只需使用绝对路径,而不是像我下面所做的相对路径):

<?php
$query = $_SERVER['QUERY_STRING'];
$params = explode("/", $query);
if (in_array("gallery", $params)) {
    header("Location: /gallery.html");
    exit;
}
else {
    header("Location: /index.html");
    exit;
}
?>

这个答案帮助我明白了这一点:$_GET在facebook iframe应用上

我可能在这里遗漏了一些东西,但为什么不直接链接到http://apps.facebook.com/yourapp/something.php呢?这应该会自动加载您的画布URL,并将something.php附加到路径中

显然,如果你的画布URL指向一个特定的文件而不是一个目录,这是行不通的,但很多应用程序都能成功地做到这一点

当您使用?您所要做的只是发出$_GET请求,因此您所需的所有信息都将存在于$_GET数组中。

与其查询$_SERVER数组,不如查询$_GET数组。

所以,如果你有:

http://myurl.com?info=foobar

您可以简单地使用访问这些信息

$info = $_GET['info'];

不过,最好先检查是否存在:

if (isset($_GET['info']))
{
$info =$_GET['info'];
}
else
{
$info="default";
}

如果你使用&字符可以有多个参数:

http://myurl.com?info=foo&moreinfo=bar

您可以得到一个名为app_data的特殊参数,您可以随心所欲地使用它。我过去曾用它来编码我的内部应用程序的完整查询字符串。例如&app_data=My/Custom/Page

在这个SO问题中可以找到更多信息:从页面选项卡URL检索参数