2

我的应用程序是用 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,然后从服务器端发出所有必要的请求,但这不是我需要的。我正在寻找一种解决方案,允许我从服务器端做所有事情。

4

1 回答 1

0

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

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

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

于 2012-08-20T12:25:02.370 回答