2011-06-22 7 views
0

私はFacebookページ内にアプリケーションをインストールしています。 $ _REQUEST内でsigned_request変数を受け取ったか、Facebook PHP SDKのFacebook :: getSignedRequest()関数を使用していました。しかし、私のアプリケーションの中で、アプリケーション内の別のページに行くと、signed_requestはそれに従いません。

私はそれが$ _SESSIONの中に置かれ、signed_requestデータはセッション内に保存されていると理解していますが、そのデータを取得するにはどのような方法が必要ですか?自分自身でセッションを取り除き、PHP SDKを使用しないでください。私は$ _REQUESTまたは$ _SESSIONで受け取っている限り、getSignedRequestが常に私に同じ結果を与えると期待します。

お知らせください!前もって感謝します!

答えて

0

セッションにsignedRequestを保存して再利用することはどうですか?

$signedRequest = $facebook->getSignedRequest(); 
if(isset($signedRequest)) $_SESSION['signedRequest'] = $signedRequest; 
else $signedRequest = $_SESSION['signedRequest']; 
2

ここで問題となっているのはサードパーティのCookieだと私は思っています。

私は過去にそれを解決した方法は、署名要求のための初期ロードをチェックし、存在する場合、すべてのリンク(すなわちhttp://www.example.com/page&signed_request=<<signed_request>>)に問い合わせVARに生の署名リクエストデータが付加され

それはありませんかなりですが、あなたのURLはiframe内にあるので、表示されていません。アプリケーションがiframeの内側にない場合は、アドバイスする必要はありません。

また、リクエスト内のデータに影響を与える可能性のあるJavascriptまたはサーバー側のコードを確認し、それに従ってURLを修正する必要があります。

これよりも良い方法があると思いますが、それは私がこれまでに考え出した唯一の方法です(app_dataクエリvarをFacebookブックのURLに使用しないでください)。

関連する問題