2012-09-26 86 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選項會讓瀏覽器選擇選項。謝謝你,簡單而翔實。 –