我需要我的Java(Swing)客户端应用程序能够在用户的Facebook个人资料上发布消息(带有链接和图片)(这需要用户登录Facebook并授权发布)。
我可以看到3个选项:
据我所知,到目前为止,选项(3)似乎最简单(没有服务器负载,不需要app令牌等)。
但是,由于我对这一切都不熟悉,我正在寻找关于最简单方法的指导。
非常感谢, 托马斯
答案 0 :(得分:0)
我应该推荐使用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);
}
});
这是令牌,您可以将其保存在临时文件中,或以多种方式将其发送到您的挥杆应用程序。