Facebook登录:没有重定向,弹出页面为白页

时间:2019-04-13 16:28:42

标签: facebook-javascript-sdk facebook-php-sdk

我有使用PHP SDK的Facebook登录程序。现在,Facebook要求我更新登录流程,因为我显然“违反了Facebook平台政策”。根据他们的说法,我的“登录按钮未正确引用Facebook”。他们建议“要解决此问题,您应该始终使用我们的官方SDK登录”。我怀疑(但不确定),这是因为使用PHP SDK getLoginUrl()方法未在弹出窗口中而是在新窗口中打开了登录名。因此,我正在尝试更新我的Facebook登录流程。

在尝试将Javascript SDK(以呈现官方按钮和弹出窗口)与PHP SDK(以处理响应)结合在一起时,我使用以下方法(来源:https://developers.facebook.com/docs/php/howto/example_access_token_from_javascript

<html>
<body>

<p><a href="#" onClick="logInWithFacebook()">Log In with the JavaScript SDK</a></p>

<script>
  logInWithFacebook = function() {
    FB.login(function(response) {
      if (response.authResponse) {
        alert('You are logged in &amp; cookie set!');
        // Now you can redirect the user or do an AJAX request to
        // a PHP script that grabs the signed request from the cookie.
      } else {
        alert('User cancelled login or did not fully authorize.');
      }
    });
    return false;
  };
  window.fbAsyncInit = function() {
    FB.init({
      appId: 'your-app-id',
      cookie: true, // This is important, it's not enabled by default
      version: 'v3.2'
    });
  };

  (function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "https://connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
</script>
</body>
</html>

单击“登录”按钮时,将弹出一个弹出窗口,按预期方式登录。但是...

  • ......甚至在输入我的FB凭据之前,代码都会警告“用户已取消登录或未完全授权”。

  • ...输入我的凭据后,弹出窗口将保持打开状态,并显示空白页面。

  • ...当我已经登录到Facebook时单击按钮时,在弹出窗口中只会看到空白的白页。

  • ...没有重定向(我想必须在if (response.authResponse)部分中处理)

0 个答案:

没有答案