static_iframeでファンだけに表示

  • 投稿日:
  • by
  • カテゴリ:


facebookページをstatic_iframeで作成する場合、ファンかどうかの判断をして、「ファンに対する表示」と「未ファンに対する表示」を異なるものにしたい場合があると思います。

「いいね!」を押したら、ページ(コンテンツ)を公開する。
「いいね!」を押したらurlやパスワードを教える。

などコントロールできれば便利です。


<static_iframeでファン特定の表示をする方法>

static_iframeで表示するphpファイルを以下のように作成します。


<?php
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(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;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
?>
<html>
<head>
<meta charset="utf-8" />
<title>例)ファンだけにプレゼント</title>
</head>
<body>
<pre>
<?php
// ここに Application Secret の「878f21db**********193709a9e4cd34」記入
$secret = 'ここに';
$data = parse_signed_request($_REQUEST['signed_request'],$secret);
?>
</pre>
<?php
if ( $data['page']['liked'] == true ) {
echo "ファンになってくれてありがとう!";
} else {
echo "いいね!をお願い致します。(Please push the like button) ";;
}
?>
// HTMLタグなどで表示
</body>
</html>




いかがですか?

ここまで参考になったと思う方は、以下の「いいね!」ボタン、
「ツィート」ボタンを是非クリックしてみてください。