查看 $_SERVER["HTTP_HOST"] 以查看用于访问您的页面的地址,如有必要,请执行 301 重定向到https://apps.facebook/myApp/
if ($_SERVER["HTTP_HOST"] == "Your domain") {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://apps.facebook/myApp/");
}
else
{
... your app goes here.
}
?>
不过,在您实施重定向之前,我将创建一个显示 $_SERVER["HTTP_HOST"] 值的测试页面,然后从 facebook 中直接从您的站点访问代码。如果它们不同,那么你很好。
我会自己测试一下,只是为了安全起见。
编辑
实际上,我刚刚做了一些测试,您需要检查是否存在 $_SERVER["HTTP_ORIGIN"] 。
如果您从 facebook 调用,它将存在,并包含 facebook 链接。如果您来自该网站本身,它就不会存在。
为了更好地了解正在发生的事情,请将此作为您的第一个程序:
<?php
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
这就是我发现 HTTP_ORIGIN 的方式。
那么你应该将上面的内容替换为:
<?php
if (isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORGIN'] === "https://apps.facebook.com"){
... your app.
}
else
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://apps.facebook/myApp/");
}
作为 HTTP_ORIGIN 的替代方案,您可以使用 HTTP_REFERER,它应该包含完整的 url 而不仅仅是 facebook 组件。否则,其他人可以设置一个 facebook 应用程序并链接到您的内容。