我在JavaFX中写了这样的东西。
public class ShareOn {
private static String appId = "", appSecret = "", accessToken="";
private static Facebook facebook = null;
private static void createFbConnection()
{
facebook = new FacebookFactory().getInstance();
facebook.setOAuthAppId(appId, appSecret);
AccessToken at = new AccessToken(accessToken);
facebook.setOAuthAccessToken(at);
}
public static void shareOnFacebook()
{
createFbConnection();
try{
facebook.postStatusMessage("Hello World from Facebook4J.");
}catch(Exception ex){
ex.getMessage();
}
}
我在Facebook上为开发者创建了一个新应用。从那里我有“appId”,“appSecret”。你能告诉我哪里出错了吗?
答案 0 :(得分:0)
什么(可能)出错
我现在根本没有Facebook API,但这条线看起来很奇怪:
AccessToken at = new AccessToken(accessToken);
您之前设置accessToken=""
的位置。这不太可行。
访问令牌应该是一个短暂的事情,您应该通过API调用获得。它与appId和appSecret不同,它们不会改变。您没有进行API调用以从Facebook检索新的访问令牌(这就是为什么没有任何反应 - 您没有做任何事情)。
你(可能)应该做什么
您应该从Facebook获得有效的访问令牌,可能通过某种类型的Facebook API调用。
您需要做什么取决于您想要获取的访问令牌的类型。看facebook4j doc,Facebook似乎有不同的类型:用户访问,应用访问,页面访问和设备访问。
如果是用户访问权限,那么您可能需要运行某种嵌入式浏览器(可能是Web视图,也许还有一些服务器端代码,以便在Web视图中提供内容并与Facebook集成)以允许用户访问通过Facebook进行身份验证,以获取其帐户的访问令牌。获得用户访问权限可能非常棘手,因为facebook4j provided sample通过基于JSP驱动的基于服务器的Web应用程序而不是像JavaFX那样的Java客户端应用程序来实现这一点。
如果它是应用程序访问权限,事情应该相当容易,似乎有一个API,希望它(不用希望)不需要您预先验证用户: