【问题标题】:Access Facebook account using facebook4j使用 facebook4j 访问 Facebook 帐户
【发布时间】:2016-05-25 19:03:33
【问题描述】:

我用 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”。你能告诉我哪里错了吗?

【问题讨论】:

  • 如果你真的描述了意外的行为,它可能会对潜在的回答者有所帮助。
  • @jewelsea 我把字符串放在这里,因为它们是“秘密”:D
  • @fabian 当我调用这个方法时没有任何反应。
  • @So,我应该怎么打这个电话?
  • @jewelsea 我想做一个应用访问

标签: javafx facebook4j


【解决方案1】:

(可能)出了什么问题

我现在根本不使用 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,它(希望)不需要您预先验证用户:

facebook.getOAuthAppAccessToken();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 2014-01-11
    • 2012-09-16
    • 2019-02-15
    • 2012-12-18
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多