0

我在这里看到了类似的问题,并且我添加了许多有意义的解决方案(HTML Doc 更改、重新定位和重新排序脚本/按钮),但该按钮仅在 Firefox 中呈现并且可点击。

Facebook选项卡/页面界面在这里:facebook.com/TodaysAesthetics/app_157293451075619

单击链接可以看到托管页面...(我无法发布更多链接)

FB 设置:应用程序域:有和没有 www 的托管站点(我读到 www 可能是罪魁祸首) 带有 Facebook 登录的网站 -> 站点 URL: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 等的顺序,但此时我会尝试任何方法。谢谢

4

1 回答 1

3

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

代替

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

利用

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

– 这让浏览器自己选择了正确的协议。

于 2012-09-27T09:52:31.253 回答