据我所知,到目前为止,您可以创建自己的Facebook应用,将自定义标签和iframed内容放到您的网页上。我已经完成了几个基本步骤来测试,但这是我的问题:
我正在为特定目的创建自定义Facebook登录页面,我不希望该应用程序只供任何人安装。但是,在我的页面上安装该应用程序后,我希望每个人都能够看到内容。我尝试打开'沙盒',但隐藏了应用程序和内容。
我还没有找到满足我所有需求的预制iframe包装。在我阅读和搜索的所有教程中,我没有看到任何人提到将他们的应用程序放在公众手中的担忧。
答案 0 :(得分:0)
这很简单,解析signed_request并查看您的应用是通过Page访问还是直接通过apps.facebook.com访问,如果第二个是真的,只需将用户重定向到您的Facebook页面标签。
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, '-_', '+/'));
}
$signed_request = $_POST['signed_request'];
$response = parse_signed_request($signed_request);
if(empty($response['page']['id'])){
die('<script>top.location.href = your_page_tab_url</script>');
}