と同等の新しいSDKです:何に新しいFacebookのJavaScriptのSDK相当を見つけようとFB.Facebook.get_isInCanvas
FB.Facebook.get_isInCanvas
するだけでなく、この呼び出しのPHP SDKの方法はありますか?
と同等の新しいSDKです:何に新しいFacebookのJavaScriptのSDK相当を見つけようとFB.Facebook.get_isInCanvas
FB.Facebook.get_isInCanvas
するだけでなく、この呼び出しのPHP SDKの方法はありますか?
$_REQUEST
/$_POST
にsigned_request
がある場合、PHP-SDKを使用してキャンバス内でアプリケーションを実行することができます。 ...ではない、完全に安全ではなく、ほとんどの場合、それを想定しても大丈夫かもしれ
あなたがキャンバスにいる知っておく必要がある場合はJS-SDKは、それだけではない非常に便利window.top == window
をチェックすることにより、確実にキャンバスに動作していないと言うことができます誰かのフレームだけではありません。
更新:
ちょうどチェックし、あなたがキャンバスに実行されているかどうかを確認するためにJS-SDKでより良いオプションがありますが、私は、この動作は、将来変更されませんわかりません。あなたはこのようなものを使用することができますので、彼ら自身がチェックを行うとコピー方法を確認することができます時々、常にセットではありません
var pageInfo = FB.Canvas.getPageInfo();
var isInCanvas = (pageInfo && pageInfo.clientWidth == 0);
FB._inCanvas
あなたは、私が見つけたことがFacebookのJSのSDKから欲しいものであること:
var _inCanvas: (
(window.location.search.indexOf('fb_sig_in_iframe=1') > -1) ||
(window.location.search.indexOf('session=') > -1)
);
:
本の新しいバージョンがあるhttps://github.com/facebook/facebook-js-sdk/blob/master/src/core/prelude.js#L71
UPDATE を参照してください。
((window.location.search.indexOf('fb_sig_in_iframe=1')>-1)||
(window.location.search.indexOf('session=')>-1) ||
(window.location.search.indexOf('signed_request=')>-1) ||
(window.name.indexOf('iframe_canvas')>-1) ||
(window.name.indexOf('app_runner')>-1))
PHP SDKについては、私がFacebook上のアプリケーションの内側とその外側にある新しいタグでWebサイトを訪れているときにsigned_requestパラメータが返されます。あなたが別のタブでアプリケーションにログインしている限り、$ facebook-> getSignedRequest()を使うことはFacebookの外で働いています....だから、ユーザーがFacebook Canvasの中にいることをPHP経由でチェックするにはどうすればいいですか? – chuuke
私は$ _REQUESTを使うことができましたが、それはページ間で落ちます。セッション変数として保存することもできますが、ユーザーが新しいタブでアプリの外でウェブページを開いた場合でもセッションは有効です。どのようにキャンバスの内部にあるかどうかを確認する簡単なチェックはありませんか? – chuuke
'$ _REQUEST'はほとんどの場合PHPの設定に応じて' $ _COOKIES'の 'signed_request'によって生成されます。 '$ _POST'はここで安全です。それは常にキャンバスに配置されます –