0

設定:

2 つの異なる Facebook ページにインストールされている Facebook タブ アプリケーション (PHP & Javascript) があります。アプリケーションの各インスタンスには、他とは異なるいくつかの構成値があります。

問題:

アプリケーションが Facebook を介して読み込まれる場合、Facebook の「署名付き要求」に基づいて何を読み込むかを決定できます。ただし、たとえば、アプリケーション自体が AJAX 呼び出しを行ってデータを更新する場合、要求で何らかの識別子を送信せずに、呼び出しがどこから来たのかを判断する方法はありますか?

考え:

私は PHP セッションを試しました。私はセッションにあまり慣れていませんが、両方のインスタンスが同時に開いていると、アプリケーションが混乱するようです。何か不足していますか?

もちろん、上記のように、各 AJAX 要求と共に何らかの ID を送信して、呼び出し元を指定することもできますが、それは避けたいと思います。

助言がありますか?

4

1 に答える 1

3

セッションはユーザーレベルであるため、問題を解決するための最良の方法ではありません。

代わりに、問題を解決する最も簡単な方法は、 (の一部)をデコードsigned_requestして見つけることです。次に、ページでajax呼び出しを行うときに、呼び出しでID(asまたはdata)を渡して、サーバーがそのページにロードするデータを認識できるようにします。page_idsigned_requestGETPOST

あなたは次のようなことをすることができます:

switch ( $_GET['page_id'] ) {
  case '1234':
    // load settings for page 1234
  break;
  case '5678':
    // load settings for page 5678
  break;
}

または、データベースを使用してこれをより簡単に管理し、スケーラブルにすることができます。

于 2012-07-23T11:41:19.780 に答える