我应该推荐使用RestFB API,它是专为你所需要的。
要登录,您需要创建一个Facebook应用程序,并使用它来获取OAuth凭证为您的用户,文档:https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.1
以下是完整的文档:http://restfb.com/
由于您使用的Swing ,你将不得不打开浏览器,试试这个片断:
public static void openWebpage(URI uri) {
Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
try {
desktop.browse(uri);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void openWebpage(URL url) {
try {
openWebpage(url.toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
或者您可以使用此另一种方法: http://java.dzone.com/articles/web-browser-your-java-swing
----编辑----
由于您将不得不创建另一个应用程序来获取令牌,这不会是一个问题。 您的swing应用程序调用Web应用程序进行登录。它里面,你将有一些像这样的代码:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log(response.authResponse.accessToken);
}
});
也就是说令牌,你可以将它保存在一个临时文件,或将其发送到您的Swing应用程序在许多方面。
谢谢,但如果用户需要登录Facebook并授予我的应用权限,RestFB将如何打开Web浏览器?这对我来说真的不清楚。 Thx – Tom 2014-09-03 20:32:59
我编辑了,也许它现在好多了 – 2014-09-03 20:37:19
非常感谢,但我仍然没有得到RestFB如何能够与浏览器进行通信以获取授权令牌进行发布(它也需要从用户的Facebook帐号浏览器)? – Tom 2014-09-03 20:45:02