FB登录按钮未在Chrome和IE中显示

时间:2012-09-26 19:42:09

标签: php facebook internet-explorer google-chrome

我在这里发布了类似的问题,我添加了许多有意义的解决方案(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等的顺序,但我会在这一点上尝试任何事情。致谢

1 个答案:

答案 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>

- 这让浏览器选择了正确的协议。