使用facebook登录我的网站

时间:2012-03-07 00:51:05

标签: facebook login

我正在尝试将facebook登录按钮合并到我网站的主页中。我已经将它与应用程序连接,所以我有应用程序ID和秘密,但我无法弄清楚如何检查用户是否已经注册到我的网站,所以在我的数据库中,为了预览他的userprofile。我已经使用了facebook上的javaScript sdk但是当我按下facebook的登录按钮时,在授权之后,没有任何反应,我的网站的主页再次显示。有谁知道如何从javascript sdk获取用户的电子邮件?我正在为我的页面使用java servlet。我使用了facebook文档中的代码。

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '8568345835', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

<div class="fb-login-button" data-scope="email">

2 个答案:

答案 0 :(得分:4)

https://developers.facebook.com/docs/authentication/

客户端流程

客户端流程还为用户使用OAuth对话框 身份验证和应用授权。唯一的区别是你 必须使用令牌值

指定response_type参数
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&response_type=token 

与服务器端流程一样,您也可以使用scope参数请求其他权限:

https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream&
response_type=token

这可能是可能的,但这不是最佳做法。我建议引入一些服务器端脚本(即PHP),但是如果你使用Facebook Javascript SDK只获取一些用户数据,那么这个方法可能会有用。工作流程就是这样。

  1. 用户点击重定向到的Facebook Connect按钮:

      

    https://www.facebook.com/dialog/oauth?            CLIENT_ID = YOUR_APP_ID&安培; REDIRECT_URI = YOUR_URL&安培; RESPONSE_TYPE =记号

  2. Facebook检查YOUR_APP_ID和URL并执行身份验证

  3. 重定向到您的网址。

  4. http://YOUR_URL#access_token=166942940015970%7C2.sa0&expires_in=64090
    

    ...在网址中使用访问令牌。

    稍后您将从URL中提取令牌并使用它通过AJAX请求执行FQL(Facebook查询语言),并获取用户数据。

    此处描述:https://developers.facebook.com/docs/reference/fql/

答案 1 :(得分:1)

在OAuth重定向和授权之后,再次显示页面后,尝试转储您的会话(类似于php中的print_r($ _ SESSION))。它应包含从Facebook获得的用户数据。

相关问题