如何使用 Facebook Messenger API?

How to use Facebook Messenger API?

我正在编写一个 java 应用程序,我需要在其中访问我的聊天记录(我和另一个 Facebook 好友之间的聊天消息)。我看过 this link,但它似乎过时了,因为我注意到 Facebook 显着改变了他的 Messenger API。我想知道是否仍然可以通过 java.

访问我的消息历史记录

p.s。我找到了一个很好的 Facebook Graph API,叫做 restfb。但是我找不到这样的聊天消息 API。

您可以使用图 API 的 inbox 资源:https://developers.facebook.com/docs/graph-api/reference/v2.3/user/inbox

编辑:

要从 Java 使用此功能,您需要先按照 https://developers.facebook.com/docs/facebook-login/v2.3 的登录说明进行操作。这是一个足够大的操作,我假设您已经完成了它——它完全超出了这个答案的范围(但我相信如果您看的话,在 Whosebug 上还有其他问题可以充分处理它)。

获得特定会话的访问令牌后(您可以通过转到 https://developers.facebook.com/docs/graph-api/reference/v2.3/user/inbox、单击图形浏览器按钮、单击 "Get Token" -> [=28= 来获取一个用于测试的令牌],并确保在“扩展权限”下选择 "read_mailbox"),阅读 API 非常简单。您只需使用标准 JDK 类 即可完成几行:

    String accessToken = "replaceThisWithAccessToken";
    String urlString = MessageFormat.format("https://graph.facebook.com/v2.3/me/inbox?access_token={0}&&format=json&method=get",
            accessToken);
    URL url = new URL(urlString);
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        System.out.println(line);
    }
    bufferedReader.close();

这掩盖了很多事情——对身份验证没有帮助,假设您的活动信任库包含 Facebook SSL 证书的证书路径(它应该),并且忽略了正确的错误处理。在实践中,你会想使用 RestClient 或类似的东西而不是直接使用 URL——但上面应该基本上说明了你需要做什么。