iframeのfacebookアプリを作成しましたが、facebookの外でアプリを無効にして、直接URLでアプリを開くことはできません。私はjavascriptで解決策を見つけましたが、私はそれをPHPで必要としています。一部のユーザーがブラウザでそれを無効にしているので、私は、リファラを使用することはできませんfacebook以外のfacebookアプリiframeを無効にするには
あなたが任意の応答を取得する場合...
iframeのfacebookアプリを作成しましたが、facebookの外でアプリを無効にして、直接URLでアプリを開くことはできません。私はjavascriptで解決策を見つけましたが、私はそれをPHPで必要としています。一部のユーザーがブラウザでそれを無効にしているので、私は、リファラを使用することはできませんfacebook以外のfacebookアプリiframeを無効にするには
あなたが任意の応答を取得する場合...
リクエストで送信されたsigned_requestパラメータがあるかどうかを確認できます。 facebook内でアプリケーションを開くと、signed_requestよりもアプリケーションが開いています。
もう1つ問題があります。
signed_requestが有効であるかどうかをチェックする必要があり、そのためにあなたが方法
パブリック関数parse_signed_request($ signed_request、$秘密){ リスト($のencoded_sig、$ペイロード)=(爆発 ''、$のsigned_request parse_signed_request使用することができます、2)。
// decode the data
$sig = $this->base64_url_decode($encoded_sig);
$data = json_decode($this->base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
$ data ['user_id']が存在するかどうか、またはログインしたユーザーと等しいかどうかを確認できます。 このようにリダイレクトできない場合
echo "<スクリプトタイプ= 'text/javascript'> top.location.href = '$ this-> loginUrl'; </script>"; また、PHPからリダイレクトする方法もあります。 (リダイレクト方法は古いphp sdkにありました)
あなたの唯一の現実的な選択肢は、何らかの形でFacebookのAPIを使用しよう、と見ることだろう。