【问题标题】:How to use Facebook Messenger API?如何使用 Facebook Messenger API?
【发布时间】:2015-09-22 21:20:59
【问题描述】:

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

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

【问题讨论】:

  • 谢谢。我查看了您提到的线程,但它仍然不是关于“在 java 中”访问聊天消息。据我所知,解决方法是使用 Dathan 提到的图形 API,但我仍然不确定是否可以在 java 中使用它。

标签: java facebook chat


【解决方案1】:

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

编辑

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

一旦您获得了特定会话的访问令牌(您可以通过转到 https://developers.facebook.com/docs/graph-api/reference/v2.3/user/inbox、单击图形资源管理器按钮、单击“获取令牌”->“获取访问令牌”来获取一个进行测试,并确保在“Extended Permissions”下选择“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——但以上内容基本上应该说明您需要做什么。

【讨论】:

  • 谢谢大坦!我查看了您提供的页面,样本在 java 脚本和 PHP 中,但不是 java。您能否提供一些关于通过 REST API 在 Java 中完成此操作的指南?
  • read_mailbox 权限自 v2.4(2015 年 7 月)developers.facebook.com/docs/apps/changelog#v2_4 起已弃用,并且从 2015 年 10 月 6 日起不会返回任何结果。
  • @AntoineBolvy 难道没有另一个 API 可以在 2 个用户之间读取和发送私人消息吗?我知道一些 Facebook 页面的机器人可以阅读和发送消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 2016-10-24
  • 2018-01-26
  • 1970-01-01
相关资源
最近更新 更多