Facebook登录仅显示按钮

时间:2015-08-01 04:19:38

标签: javascript jquery html facebook

我正在检查用户登录状态。 我使用了fb给出的facebook代码,但它只显示登录按钮。我想检查用户是否已登录。

function testAPI() {
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {
      console.log('Successful login for: ' + response.name);
      document.getElementById('status').innerHTML =
        '<br/>Thanks for logging in, ' + response.name + '<br/>User Id: '+ response.id + '<br/>Email Id: '+ response.email + '!';
        //window.location.replace('abc.html');
    });
    FB.getLoginStatus(function(response) {
      statusChangeCallback(response);
    });
}

1 个答案:

答案 0 :(得分:2)

您的代码与我发布的here的Facebook代码不同。它很接近,但有几个键差异和注意事项。您的更多文件在这里会非常有用。请确保您已收到Facebook的应用程序ID并为您的应用程序注册。但要明确的是,您似乎在错误的时间检查登录状态。这只是一个函数,我们不知道它在哪里调用,或者它模仿我提供的链接上的流程就像这样(即使这不是它们在facebook给出的代码中的组织方式)。如果你有一个带有id='status'的HTML文本项,你也会看到一些东西。所有这些我无法用你的代码告诉我。

  1. 初始化FB SDK并进行所有正确的设置
  2. 用户按下执行此代码的登录信息:

    <fb:login-button scope="public_profile,email" onlogin="checkLoginState();"> </fb:login-button>

  3. 上面的代码为您提供了facebook提供的常规范围(为了获得更多范围,您必须通过Facebook的请求流程,仅供参考)。正如您所看到的,按下此按钮并完成描述为onlogin的操作后,我们将执行以下功能checkLoginState()

  4. function checkLoginState() { FB.getLoginStatus(function(response) { statusChangeCallback(response); }); }

    1. 这会获得登录状态&#34;然后调用函数statusChangeCallback(response)

      function statusChangeCallback(response) { console.log('statusChangeCallback'); console.log(response); // The response object is returned with a status field that lets the // app know the current login status of the person. // Full docs on the response object can be found in the documentation // for FB.getLoginStatus(). if (response.status === 'connected') { // Logged into your app and Facebook. testAPI(); } else if (response.status === 'not_authorized') { // The person is logged into Facebook, but not your app. document.getElementById('status').innerHTML = 'Please log ' + 'into this app.'; } else { // The person is not logged into Facebook, so we're not sure if // they are logged into this app or not. document.getElementById('status').innerHTML = 'Please log ' + 'into Facebook.'; } }

    2. 现在,上面的代码IF CONNECTED将调用您的testAPI()函数,该函数将下拉响应。并且它会尝试查找ID为status的HTML文档,如果您没有创建它,则不会显示任何内容。

    3. 如果您确定已执行了所有这些步骤并正确执行了这些步骤,那么我建议您在浏览器中查看几个console.log()语句并查看Google Chrome控制台或Javascript控制台,并了解您所处的状态并且您的功能实际上已被调用。

      如果您不确定,请仔细检查Facebook登录页面。这是很好的文档。