如果访问了应用托管网站,请重定向到我的应用

时间:2012-09-13 08:46:39

标签: facebook redirect hosting

如果他/她试图打开我的应用托管网站,我想要将用户重定向到我的应用的代码。 对于前: 我的应用链接:https://apps.facebook.com/gaming-zone/ 应用托管链接:http://gaming-zone.herokuapp.com/

我已经找到了一些代码,但这些代码会不断重定向用户,如果他在Facebook上使用我的应用程序并且他正在玩任何游戏,那么它也会将用户重定向到应用主页。 我想要只有当他访问我的托管网站时重定向用户的确切代码。

这些是我发现的代码:

<script type='text/javascript'>
if (window.top.location == window.location) 
  window.top.location = 'https://apps.facebook.com/gaming-zone/';
</script>

2 个答案:

答案 0 :(得分:0)

问题是您无法读取window.top.location值。你只能写它。很奇怪,但就是这样。

选项1:将您的应用安装到页面标签页并创建一个类似门。就像门将在facebook iframe总是返回false。

选项2:在后端加载页面时检查已签名的请求数据。

选项3:其他选项是检查顶部网址,但是在后端检查。

答案 1 :(得分:0)

以下是我使用的代码:

<script type="text/javascript">
  function NotInFacebookFrame() {
    return top === self;
  }
  function ReferrerIsFacebookApp() {
    if(document.referrer) {
      return document.referrer.indexOf("apps.facebook.com") != -1;
    }
    return false;
  }
  if (NotInFacebookFrame()) {
    top.location.replace("https://apps.facebook.com/YOUR_APP_NAMESPACE");
  }
</script>

这会检查他们当前是否在Facebook框架中,并且仅在它会将它们重定向到“https://apps.facebook.com/YOUR_APP_NAMESPACE”

注意:您可以在应用中的任何页面上使用此功能,只需相应更改网址。

例如:如果您在http://YourDomain.com/anotherpage.php中使用此功能,则可以将上面代码中的网址更改为https://apps.facebook.com/YOUR_APP_NAMESPACE/anotherpage.php