2014-09-29 125 views
0

我看了很久,我似乎无法找到解决方案。我正试图实现Facebook登录到我的网站,我有一次这样做。Facebook登录没有返回

我已经实现了Facebook图形API,我有登录部分内置,但我不能得到任何回报它来处理它。

你可以明白我的意思的< phiride.com>(我不知道这是很糟糕的网络礼仪张贴本网站上的URL如果很抱歉!)

我曾经给获取代码一个回报 - >

<script> 
FB.api('/me', function(response) { 
    console.log(JSON.stringify(response)); 
}); 
</script> 

绝对没有什么是打印到屏幕上,我无法找到处理信息。我确信这是一个简单的初学者错误,但任何帮助将不胜感激。

回答

0

您是否通过网站生成了html和脚本?

https://developers.facebook.com/docs/plugins/login-button

+0

是我做的,我可以生成登录空间,但我不能从它处理任何数据。 – Dhowa 2014-09-29 15:31:11

+0

所以你想能够收集用户的详细信息。 [这可能是更多你正在寻找](https://developers.facebook.com/docs/reference/javascript/FB.login/v2.1#permissions)。 FB.login(函数(响应){//处理响应 },{scope:'email,user_likes'}); – new2code 2014-09-29 16:29:13

+0

好吧,这很酷,我理解这段代码是怎么回事,但是API似乎没有提及的部分,以及我想要弄清楚的是如何处理这个异常以获取数据。像是是token.data('电子邮件')什么的?我试过console.log(email);以及各种变化只是为了看看我是否可以打印数据,而不能。 – Dhowa 2014-09-29 21:02:09

0

这是你需要为了使API调用的工作做的:

  • 初始化的JavaScript SDK
  • 授权用户

初始化JavaScript的SDK

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'your-app-id', 
     xfbml  : true, 
     version : 'v2.1' 
    }); 
    }; 

    (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 = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 

授权用户

FB.login(function(response) { 
    if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     console.log('Your Email: ' + response.email); 
    }, {scope: 'email'}); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}); 

只有调用FB.login用户交互(上单击),以确保它不会被浏览器阻塞 - 它必须被调用后FB.init了。您也可以通过在FB.init后面使用FB.getLoginStatus来检查用户是否已被授权。

来源:

+0

这是一个非常精心和深入的回应,谢谢!但我在处理登录网站时的数据时遇到问题。一旦你确定他们已经登录,你如何处理他们的信息。任何关于如何处理他们的电子邮件,(希望MD5)密码,名字等的建议将非常感激。 – Dhowa 2014-09-29 15:46:36

+0

当然,你无法获得他们的密码。您可以通过“email”范围(请参阅文档中的FB.login)和/ me端点获取电子邮件。与用户的名称相同,它也将位于/ me端点中。 – luschn 2014-09-29 18:00:11

+0

你一直非常有帮助,但对我的问题的答案很可能比你给出的答案简单得多。我只需要查看将请求示例和电子邮件并允许我打印或存储的代码。我一直试图打电话和登录电子邮件,但没有出现。如果我可以看到数据打印并知道数据的位置,我可以从那里处理数据,并使用代码添加所需的其他范围。再次感谢你! – Dhowa 2014-09-30 14:24:18