我在这里发布了类似的问题,我添加了许多有意义的解决方案(HTML Doc更改,重新定位和重新排序脚本/按钮),但该按钮只能在Firefox中呈现并可点击。
Facebook标签/页面界面在这里:facebook.com/TodaysAesthetics/app_157293451075619
通过点击链接可以看到托管页面...(我无法发布更多链接)
FB设置: 应用程序域:托管站点WITH和WITHOUT www(我读过www可能是罪魁祸首) Facebook登录网站 - >网站网址:DOMAIN / facebook / (我尝试过DOMAIN / facebook /和DOMAIN / facebook / todays)
这是我的代码:
<?php
define('YOUR_APP_ID', '[edit]');
define('YOUR_APP_SECRET', '[edit]');
function get_facebook_cookie($app_id, $application_secret) {
$args = array();
list($encoded_sig, $payload) = explode('.', $_COOKIE['fbsr_' . $app_id], 2);
$sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
return null;
}
$expected_sig = hash_hmac('sha256', $payload,
$application_secret, $raw = true);
if ($sig !== $expected_sig) {
return null;
}
$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id . "&client_secret=" . $application_secret. "&redirect_uri=" . "&code=" . $data['code'];
$response = @file_get_contents($token_url);
$params = null;
parse_str($response, $args);
return $args;
}
$cookie = get_facebook_cookie(YOUR_APP_ID, YOUR_APP_SECRET);
if ($cookie) {
$user = json_decode(file_get_contents('https://graph.facebook.com /me?access_token=' . $cookie['access_token']));
}
?>
<?php if ($cookie) { ?>
<form>
<input type="button" id="hide" value="Print" onClick="printc()">
</form>
[MY COUPON IMAGE]
<?php } else { ?>
<fb:login-button scope="email,user_birthday,user_location" onlogin="window.location.reload()" autologoutlink="true">Connect to Facebook to View Special</fb:login-button>
<?php } ?>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({appId: '<?= YOUR_APP_ID ?>', status: true,
cookie: true, xfbml: true,oauth:true});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
</script>
如果我能提供任何其他信息,或者我错过了任何答案,请告诉我。我试图改变这些脚本与div等的顺序,但我会在这一点上尝试任何事情。致谢
答案 0 :(得分:3)
您已使用HTTP嵌入了JS SDK - 因此Chrome和IE会阻止在通过HTTPS请求页面时执行它。 (顺便说一下,如果您刚刚查看了这些浏览器的错误控制台,您可以轻松发现自己的东西 - 所以请熟悉这种调试工具并在将来使用它们!)< / em>的
而不是
<script src="http://connect.facebook.net/en_US/all.js"></script>
使用
<script src="//connect.facebook.net/en_US/all.js"></script>
- 这让浏览器选择了正确的协议。