2

ユーザーが私のアプリ ホスティング サイトを開こうとした場合に、ユーザーを私のアプリにリダイレクトするコードが必要です。例: 私のアプリのリンク: 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>
4

2 に答える 2

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」にリダイレクトします。

注: URL を適宜変更するだけで、アプリ内の任意のページでこれを使用できます。

例: http://YourDomain.com/anotherpage.phpでこれを使用している場合、上記のコードの URL をhttps://apps.facebook.com/YOUR_APP_NAMESPACE/anotherpage.phpに変更できます。

于 2012-09-14T06:09:14.543 に答える
0

問題は、window.top.location の値を読み取れないことです。あなたはそれを書くことしかできません。奇妙ですが、それだけです。

オプション 1: アプリをページ タブにマウントし、like-gate を作成します。同様のゲートは、Facebook iframe の外では常に false を返します。

オプション 2: バックエンドでページをロードするときに、署名されたリクエスト データを確認します。

オプション 3: 他のオプションは、バックエンドでトップ URL を調べることです。

于 2012-09-13T11:52:42.023 に答える