检查facebook用户是否从java服务器端连接到应用程序

时间:2012-08-18 03:54:01

标签: java facebook restfb

我的应用程序是用JSF框架编写的。 JavaScript API中有一种方法可以识别用户是否连接到应用程序

FB.init({appId: "#{settings.fbClientId}", status: true, cookie: true});
FB.getLoginStatus(function(response) {
   if (response.status === 'connected') {
      var uid = response.authResponse.userID;
      var accessToken = response.authResponse.accessToken;
   }
}

我正在寻找一个允许我从服务器端执行相同操作的功能。目前我正在使用restFB向Facebook发出请求。看起来这个实现不支持授权和相关功能。我知道它可以在PHP SDK和Python SDK中使用,但在Java中找不到这样的东西。

注意:我可以检查JS API,然后从服务器端发出所有必要的请求,但这不是我需要的。我正在寻找一种解决方案,允许我从服务器端做一切。

1 个答案:

答案 0 :(得分:0)

任何服务器端技术都无法识别Facebook用户在Facebook之外重新访问您的应用程序(在经过一段时间之后)。

原因很简单:我登录Facebook会在我的浏览器中创建为facebook.com域设置的cookie。 我的服务器上没有服务器端技术(因此,在我的域下)能够获取这些cookie的内容。

然而,JS SDK能够发出跨域请求以检查我是否登录到Facebook,然后在 my 域下设置一些cookie,任何服务器端技术都可以访问我在下次请求时的当前状态。