2012-09-26 46 views
0

我看到类似的问题发布在这里,我添加了许多有意义的解决方案(HTML文档更改,重定位和重新排序脚本/按钮),但按钮只呈现并且可以在Firefox中点击。FB登录按钮不在Chrome和IE中显示

Facebook标签/页界面是在这里:facebook.com/TodaysAesthetics/app_157293451075619

托管的网页,可以通过点击该链接可以看到......(我不能发布更多的链接)

FB设置: 应用域名:托管网站有和没有www(我读www可能是一个罪魁祸首) 与Facebook登录的网站登录 - >网站网址:DOMAIN /脸书/ (我试过DOMAIN/Facebook /和DOMAIN/Facebook /今天)我的代码:

<?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

您可以缩进您的代码吗? – Stephan

+0

请让我知道如果我做到了这一点 –

+0

删除空行 – Stephan

回答

3

您已经使用HTTP嵌入了JS SDK - 因此当Chrome通过HTTPS请求页面时,Chrome和IE将阻止其执行。 (这是,顺便说一句,如果你刚刚查看过这些浏览器的错误控制台,那么请熟悉这种调试工具并在将来使用它们)。

而不是

<script src="http://connect.facebook.net/en_US/all.js"></script> 

使用

<script src="//connect.facebook.net/en_US/all.js"></script> 

- 这让我们在浏览器选择权协议本身。

+0

谢谢,我确实在错误控制台中看到这个: [屏蔽]在https://www.webopenings.com/facebook/todays/页面运行不安全的内容来自http://connect.facebook.net/en_US/all.js。 但它对我没有任何意义。我从来不知道离开http/https选项会让浏览器选择选项。谢谢你,简单而翔实。 –